Назначение

Имидж построения трехмерной поверхности


Описание

Имидж строит трехмерную поверхность. Прямоугольная сетка размером : SizeX * SizeY

Число вершин stepx * stepy соответственно. Кроме того каждой точке на этой ячейке можно установить произвольную высоту и цвет. В результате строится трехмерная поверхность.


В начальный момент времени имидж создает матрицы точек и матрицу цветов.

Матрица точек: [SizeY: SizeX*3] - где три  соседние ячейки (y,x; y,x+1; y,x+2) определяют координаты отдельной точки.

Матрица цветов: [SizeY: SizeX] -где каждый элемент цвет в соответствующей точке.

Номера этих матриц записываются в переменные Mat и MatC.


Далее для каждой точки посылается сообщение имиджу указанному в переменной Calculator. Он может иметь следующий текст:

FLOAT x,y,z,_enable

_x:=x*2*PI+PI

_y:=y*2*PI+PI

c:=1/5*sin(~_x)*cos(2*~_y) - 3/2*cos(7*((~_x-PI)^2 + (_y-PI)^2)/4)*exp(-((~_x-PI)^2 + (_y-PI)^2))

z:=-40*~c

color := RGB(255, 255*(x+0.5), 255-255*(y+0.5))


В переменные x,y записываются числа от 0 до 1. Имидж по ним должен подсчитать значение z и переменной Color.


Далее на каждом шаге обновление поверхности зависит от переменной UpdateMode.

·Если установлен нулевой бит то посылаются сообщения как и при создании поверхности. Иначе другие имиджи должны сами модифицировать матрицы точек и цветов. Изменение матрицы напрямую гораздо быстрее, чем посылка сообщений;

·Если установлен первый бит то меняются координаты точек;

·Если установлен второй бит то изменяются цвета;

·При установке третий бита не происходит обнуление переменной UpdateMode.


Переменные

Название

Тип

Описание

HSpace3d


Дескриптор трехмерного пространства

HObject3d


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

stepx,stepy


Количество ячеек по X,Y

sizex,sizey


Размер сетки по X,Y в мировой системе координат

Calculator


Имидж вычисляющий высоту и цвет заданного столбика

from_x


Начало диапазона для функции расчета

to_x


Конец диапазона для функции расчета

from_y


Начало диапазона для функции расчета

to_y


Конец диапазона для функции расчета

_enable


Управление работой

UpdateMode


биты :&1 - посылаются сообщения | &2 - обновляются точки | &4 - обновляются цвета| &8 updatemode не сбрасывается в ноль

Mat


Матрица с точками

MatC


Матрица с цветами ячеек

_enable


флаг,  управляющий работой объекта


см. Пример Surf3d.

см. Библиотека имиджей 3D графикиlibrary_Graph3d.lib

Created with the Personal Edition of HelpNDoc: Easily create Help documents