Курсовая работа: Построение изображений ландшафта в реальном времени
Height : Single;
end;
Поля этой записи имеют следующее значение:
· Color – цвет изообласти;
· Height – представляемая высота.
Размер записи – 8 байт (компилятор Delphi производит выравнивание полей в записи, поэтому размер записи оказывается равным 8 байтам, а не 7, как должно быть).
Тип TRGBColor используется для хранения RGB-цвета. Представим его структуру:
TRGBColor = record
R, G, B : Byte;
end;
Размер записи – 3 байта (по неизвестным причинам в этом случае выравнивания не произошло).
В процессе создания каждой карты создается динамический массив, для хранения информации обо всех типах изообластей:
THeightColors = array of THeightColor;
2.2.2.2 Равномерная сетка высот и ландшафт
Для хранения узлов исходной равномерной сетки (с шагом 1) используется динамический массив элементов типа Single:
TZBitMap = array of array of Single;
Тип Single использован для экономии оперативной памяти и дискового пространства, точность этого типа – 8 знаков после запятой, что вполне достаточно в рамках этой работы, при этом переменная этого типа занимает в памяти 4 байта, вдвое меньше, чем переменная типа Real.
При триангуляции равномерной сетки создается динамический массив треугольников ландшафта. Для хранения информации о треугольнике используется следующий тип данных:
TTriangle = record
P : array [0..2] of TPoint3
N : TPoint3
pD : Single;
aN : array [0..2] of TPoint3;
Color : TRGBColor;
end;
Поля этой записи имеют следующие значения:
· P – массив точек треугольника;
· N – нормаль к плоскости треугольника;
· pD – свободный член уравнения плоскости, несущей треугольник;