class Histogramm3D
Назначение
Имидж построения трехмерной гистограммы
Описание
Этот имидж во многом аналогичен имиджу построения трехмерной поверхности. Только в каждой клетке располагается : прямоугольный, цилиндрический или конический столбик.
Переменные
Название |
Тип |
Описание |
StepX,StepY |
float |
Количество столбиков |
SizeX,SizeY |
float |
Размер прямоугольной сетки (SizeX * SizeY) |
Calculator |
float |
Имидж вычисляющий высоту и цвет заданного столбика |
HSpace3D |
handle |
Дескриптор трехмерного пространства |
HObject3D |
handle |
Дескриптор созданного трехмерного объекта |
mode |
float |
1 - цилиндрики | 2 - цилиндр рисуется конусом|4 - рисуется сетка как основание |
UpdateMode |
float |
биты :&1 - посылаются сообщения | &2 - обновляются точки | &4 - обновляются высоты | &8 updatemode не сбрасывается в ноль |
mat |
float |
матрица точек |
matC |
float |
матрица цветов |
rel |
float |
размер каждого столбика относительно размера одной ячейки |
seg |
float |
количество сегментов в конусе или цилиндре |
_enable |
float |
флаг инициализации окна - значение 1, (по умолчанию 0) |
В начальный момент времени имидж создает матрицы точек и матрицу цветов.
Матрица точек: [SizeY: SizeX] - где каждая точка определяет высоту столбика.
Матрица цветов: [SizeY: SizeX] -где каждый элемент цвет соответствующего столбика.
Номера этих матриц записываются в переменные Mat и MatC.
Форма столбика определяется переменной mode:
Биты |
|
Описание |
0 |
|1 |
Вместо прямоугольника рисуется цилиндр. |
1 |
|2 |
Рисуется конус. Если установлен предыдущий бит |
2 |
|4 |
Рисуется сетка в основании гистограммы |
Далее для каждой точки посылается сообщение имиджу указанному в переменной 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.
см. Пример Hist3d.
см. Библиотека имиджей 3D графикиlibrary_Graph3d.lib
Created with the Personal Edition of HelpNDoc: Add an Extra Layer of Security to Your PDFs with Encryption