Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная графика, мультимедиа и игры на Vis...doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
1.92 Mб
Скачать

Часть XVII. Приложения Visual c# для использования на практике, например, в промышленности Глава 75. Алгоритмы для расчета площади, объема и массы изделий и заготовок

75.1. Объектно-ориентированный анализ геометрии изделий

Напомним, что перед нами стоит задача: разработать методологию создания вычислительной системы из различных приложений комплекса Visual C# с использованием элементов компьютерной графики. Если в предыдущих главах мы разрабатывали приложения для математических вычислений и построения графиков функций, то с этой главы начнем разрабатывать приложения для решения практических проблем в науке и технике (например, в промышленности, строительстве, сельском хозяйстве и т.д.). Одной из самых распространенных таких проблем является определение площади поверхности, объема и массы любого изделия (вещи, продукта, детали), которое или уже изготавливается, или планируется изготавливать (выпускать). Расчет площади поверхности, объема и массы необходимо выполнять абсолютно для всех изделий (как вновь спроектированных, так и существующих, но, например, модернизированных изделий); такой расчет является самостоятельной (часто сложной) инженерной задачей, которая обычно решается приближенно с заданной точностью. Для решения этой задачи будем использовать объектно-ориентированную философию, которая (как уже отмечалось) включает три основных понятия: объектно-ориентированный анализ; объектно-ориентированное проектирование и объектно-ориентированное программирование ООП (Object Oriented Programming, OOP). С целью реализации принципов объектно-ориентированной философии сначала необходимо разработать класс объектов-изделий.

В этой главе перед нами стоит задача: разработать методику расчета массы заданного по чертежу изделия (детали). Поэтому для нас важным становится следующий (за технологическим признаком) признак классификации, а именно: геометрическая форма изделий. Существует много классификаций изделий по геометрической форме. Для примера выбранную (заранее по технологическому признаку) номенклатуру изделий мы разделим по геометрической форме на следующие классы объектов-изделий:

1. Класс объектов-изделий типа стакана.

2. Класс объектов-изделий типа втулки.

3. Класс объектов-изделий типа оси и так далее.

Глава 76. Консольное приложение для расчета массы изделий

Листинг 76.1. Проект Part 3. Файл Program.cs.

#region Using directives

using System;

using System.Collections.Generic;

using System.Text;

#endregion

namespace ConsoleApplication1

{

class Program

{

//Мы начинаем записывать код:

double d, H, s; double pi = Math.PI;

double rho=7850; //: for steel.

double A, V, m, D;

double Area() //Площадь поверхности детали:

{

double A1, A2;

A1=Area1(); A2=Area2(); A=A1+A2;

return A;

}

double Volume() //Объем детали:

{

A=Area(); V=A*s; return V;

}

double mass() //Масса детали:

{

Console.Write("Part diameter, mm, d =");

d = Convert.ToDouble(Console.ReadLine());

Console.Write("Part heigth, mm, H =");

H = Convert.ToDouble(Console.ReadLine());

Console.Write("Part thickness, mm, s =");

s = Convert.ToDouble(Console.ReadLine());

A=Area();

V=Volume(); //mm*mm*mm

m=V*rho*1.0e-9; // kg

Console.WriteLine("");//Пробельная строка.

//Вывод площади:

Console.Write("Part area, mm*mm, A =");

Console.WriteLine(A);

//Вывод объема:

Console.Write("Part volume, mm*mm*mm, V =");

Console.WriteLine(V);

//Вывод массы:

Console.Write("Part mass for steel,kg,m=");

Console.WriteLine(m);

return m;

}

double DBlank() //Диаметр плоской заготовки:

{

A=Area();

D=Math.Sqrt(4*A/pi);

//Вывод диаметра заготовки:

Console.Write("Blank diameter, mm, D =");

Console.WriteLine(D);

Console.WriteLine("");//Пробельная строка.

return D;

}

double Area1() //Площадь круга:

{

double A1; double Rn; Rn=H;

A1=pi*(d-2*Rn)*(d-2*Rn)/4;

return A1; //mm*mm

}

double Area2() //Площадь тора:

{

double A2; double Rn; Rn=H;

A2=pi*(Rn-s/2)*(2*(Rn-s/2)+pi*(d-2*Rn)/2);

return A2; //mm*mm

}

//Мы закончили написание кода.

static void Main(string[] args)

{

//Мы начинаем записывать код:

//Создать объект-деталь Part3:

Program Part3 = new Program();

//На объекте Part3 рассчитать площадь:

Part3.Area();

//На объекте Part3 рассчитать объем:

Part3.Volume();

// На объекте Part3 рассчитать массу:

Part3.mass();

//На объекте Part3 рассчитать заготовку:

Part3.DBlank();

//Мы закончили написание кода.

}

}

}