50376 (Построение трехмерной модели вазы), страница 3
Описание файла
Документ из архива "Построение трехмерной модели вазы", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "50376"
Текст 3 страницы из документа "50376"
VK_DOWN: phi:=phi-pi*0.05;
VK_LEFT: teta:=teta+pi*0.03;
VK_RIGHT: teta:=teta-pi*0.03;
end;
ViewTransformation;
Draw;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
B,L,H,nn:integer;
dL:Real;
const
Rz:array[0..9] of integer = (50,75,90,94,88,74,54,42,40,46);//радиусы параллелей
begin
H:=250; // высота вазы
d:=200; //масштаб
ro:=500; //перспектива
teta:=pi/9; //угол поворота
phi:=pi*4/3; //угол поворота
// вершины вазы
for B:=0 to 9 do
begin
for L:=0 to step-1 do
begin
dL:=L*Pi*(360/step)/180;
w[B*step+L+1].x:=Rz[B]*sin(dL); //Вычисление мировых координат
w[B*step+L+1].y:=Rz[B]*cos(dL);
w[B*step+L+1].z:=H/10*B-H/2;
end;
end;
// полигоны вазы
nn:=1;
for B:=1 to 9 do
begin
for L:=0 to step-2 do
begin
polygons[nn].A:=(B-1)*step+L+1;
polygons[nn].B:=(B-1)*step+L+2;
polygons[nn].C:=B*step+L+2;
polygons[nn].D:=B*step+L+1;
polygons[nn].clr:=col1;
nn:=nn+1;
end;
polygons[nn].A:=B*step;
polygons[nn].B:=(B-1)*step+1;
polygons[nn].C:=B*step+1;
polygons[nn].D:=(B+1)*step;
polygons[nn].clr:=col1;
nn:=nn+1;
end;
// вершина дна вазы
w[nPOINT].x:=0;w[nPOINT].y:=0;w[nPOINT].z:=-H/2;
// полигоны дна вазы
for L:=0 to step-2 do
begin
polygons[L+nPOINT].A:=L+2;
polygons[L+nPOINT].B:=L+1;
polygons[L+nPOINT].C:=nPOINT;
polygons[L+nPOINT].D:=nPOINT;
polygons[L+nPOINT].clr:=col2;
end;
polygons[nPOLYGON].A:=1;
polygons[nPOLYGON].B:=step;
polygons[nPOLYGON].C:=nPOINT;
polygons[nPOLYGON].D:=nPOINT;
polygons[nPOLYGON].clr:=col2;
// буфер
buf:=TBitmap.Create;
buf.Width:=Form1.ClientWidth;
buf.Height:=Form1.ClientHeight;
// фон
blinc_buf:=TBitmap.Create;
blinc_buf.Width:=Form1.ClientWidth;
blinc_buf.Height:= Form1.ClientHeight;
blinc_buf.Canvas.Rectangle(0,0,Form1.ClientWidth,Form1.ClientHeight);
blinc_buf.LoadFromFile('./background.bmp');
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
// ViewTransformation;
// Draw;
end;
end.
Размещено на Allbest.ru