Назначение

Имидж построения трехмерной гистограммы


Описание

Этот имидж во многом аналогичен имиджу построения трехмерной поверхности. Только в каждой клетке располагается : прямоугольный, цилиндрический или конический столбик.


Переменные

Название

Тип

Описание

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