Курсовая работа: Управление элементами поверхности
var i, j:integer;
begin
for i:= -11 to 11 do
for j:=-11 to 11 do
begin
height [i, j]:=-1;
end;
end;
…
Рисование поверхности производится вызовом процедуры Draw в обработчике события OnPaint:
procedure Draw;
…
for i:=-10 to 10 do
for j:=-10 to 10 do
begin
x:=i*zoom;
z:=j*zoom;
glBindTexture (GL_TEXTURE_2D, MyTextureTex);
glBegin (GL_QUADS);
glTexCoord2f (0.0, 0.0); glVertex3f (x, height [i, j], z);
glTexCoord2f (1.0, 0.0); glVertex3f (x, height [i, j+1], z+zoom);
glTexCoord2f (1.0, 1.0); glVertex3f (x+Zoom, height [i+1, j+1], z+zoom);
glTexCoord2f (0.0, 1.0); glVertex3f (x+Zoom, height [i+1, j], z);
glEnd;
end;
end;
В этой процедуре по каждому значению массива height строится ландшафт.
2.3 Реализация ориентирования на поверхности
Для того чтобы наглядно продемонстрировать ландшафт, было принято решение дать наблюдателю возможность перемещаться по поверхности. Для того, чтобы это реализовать в обработчик события OnFormKeyDown формы занесем следующий код:
case key of