Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Программа расчета сферической поверхности




Программирование построения изолиний

В этом параграфе мы с вами снова вернемся к программированию получения графических изображений на Delphi. В §2.4.5 рассматривалась программа построения графика функции. На ее примере были описаны основные принципы получения графического изображения в Delphi. Теперь нашей задачей будет составление программы построения картины изолиний для поля температур.

 

Что такое изолинии

Рассмотрим подробнее понятие изолиний. Дадим определение изолинии.

Дана функция от двух переменных Z(x,y), определенная в некоторой области значений аргументов. Изолинией называется геометрическое место точек на плоскости X0Y, соответствующее постоянному значению функции Z.

Графическим изображением функции Z(x,y) является поверхность в трехмерном пространстве. Такие поверхности, показанные на рис.3.26, 3.30, были получены с помощью табличного процессора. Изолиния, соответствующая некоторому постоянному значению Z=Zc, представляет собой проекцию сечения поверхности Z(x,y) плоскостью Z=Zc.

В качестве примера рассмотрим сферическую поверхность радиуса R с центром в начале координат. Ее уравнение следующее:

x2 + y2 + z2=R2

Выразим из этого уравнения значение Z, как функцию от x, y:

 

(3.47)

 

 

Знак ‘+’ соответствует верхней полусфере, знак ‘–‘ соответствует нижней полусфере. Изолиниями такой функции являются концентрические окружности с центром в начале координат и радиусом от 0 до R. Построение одной изолинии показано на рис.3.31.

 

Теперь перейдем к программированию. План действий будет следующим.

1. Составим программу вычисления дискретных значений на прямоугольной сетке функции (3.47) с сохранением в файле полученного числового массива.

2. Составим программу построения картины изолиний для функции Z(x,y), сохраненной в дискретном виде в файле, в результате выполнения п.1.

 

Дискретное представление поверхности


Примем . Будем строить картину изолиний верхней части сферической поверхности (Z>0) в пределах квадратной области -1≤ x ≤ 1, -1≤ y ≤1. Такая область будет представлять собой вписанный квадрат в окружность, получающуюся при пересечении сферы с плоскостью X0Y, как показано на рис.3.32.

На квадратную область накладываем прямоугольную сетку размером N×M, где N – число шагов по оси X, M - число шагов по оси Y. В дальнейшем будем называть ее расчетной сеткой. Значения шагов по X и по Y равны, соответственно:

hx=2/N, hy=2/M.

Если N=M, то шаги одинаковые и ячейки сетки квадратные.

Координаты узлов сетки вычисляются по следующим формулам:

xj= –1+jhx, j=0,..,N

yi= –1+ihy, i=0,..,M

 

Для получения дискретного представления верхней половины сферической поверхности, в каждом узле сетки вычисляется значение функции Z по формуле (3.47). Получим расчетную формулу:

(3.48)

 

Множество значений функции Z образует матрицу {Zi,j}, i=0,..,M, j=0,..,N

 

Программа расчета сферической поверхности

Ниже приведена программа на Паскале для расчета поверхности верхней полусферы.

Program Polusfera;

Const M=50; N=50;//Параметры размера сетки

Var I,j: integer;

Z: array[1..M,1..N] of real; //Массив расчетных значений ф-ии Z

x,y,hx,hy: real;

Flt: file of real; //файловая переменная

begin

Assign(Flt, ‘F:\temp\Tmas.dat’); //Назначение файла

Rewrite(Flt); //Открытие файла для записи

hx:=2/N; hy:=2/M; //Расчет шагов по X и по Y

//Вычисление массива Z

for i:=1 to M do

begin

y:=-1+hy*I;

for j:=1 to N do

begin

x:=-1+hx*j;

Z[I,j]:=sqrt(2-x*x-y*y)

end

end;

//Запись массива в файл поэлементно

for i:=1 to M do

for j:=1 to N do write(Flt, Z[I,j]);

close(Flt);

Writeln(‘Работа программы закончена’)

end.

Новым для вас элементом в этой программе является использование типизированного файла. Чтобы вспомнить, как организуется ввод данных из файла и вывод в файл, посмотрите еще раз §2.2.4 нашего учебника. Там описана работа с текстовыми файлами, которые хранят любые данные в символьном формате.

Если же требуется хранить в файле данные в том же формате, в каком они хранятся в оперативной памяти, то в таком случае используются типизированные файлы. Файловая переменная, связываемая с типизированным файлом, описывается так:

Var <переменная>: file of <тип сохраняемых данных>.

В рассматриваемой программе используется файловая переменная Flt, которая описана следующим образом:

Var Flt: file of real;

Запись в типизированный файл производится оператором

write(<файловая переменная>, <список вывода>)

Чтение из типизированного файла производится оператором:

Read((<файловая переменная>, <список ввода>)

При использовании типизированных файлов вместо текстовых для сохранения массива вещественных чисел, обычно значительно сокращается объем получаемого файла.

 





Поделиться с друзьями:


Дата добавления: 2015-11-23; Мы поможем в написании ваших работ!; просмотров: 2490 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Сложнее всего начать действовать, все остальное зависит только от упорства. © Амелия Эрхарт
==> читать все изречения...

2160 - | 2048 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.