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