Курсовая работа: Построение трехмерной модели вазы
tone:=rgb(round(nz*GetRValue(clr)),
round(nz*GetGValue(clr)),
round(nz*GetBValue(clr)))
end;
procedure ViewTransformation;
var i: integer;
begin
for i:=1 to nPOINT Do
begin
v1[i].x:=Round(w[i].x*(-sin(teta))+w[i].y*(cos(teta)));
v1[i].y:=Round(w[i].x*(-cos(phi)*cos(teta))-w[i].y*(cos(phi)*sin(teta))+
w[i].z*( sin(phi)));
v1[i].z:=Round(w[i].x*(-sin(phi)*cos(teta))-w[i].y*( sin(phi)*sin(teta))-
w[i].z*(cos(phi)))+ro;
v[i].x:=Round(Form1.ClientWidth div 2+v1[i].x );
v[i].y:=Round(Form1.ClientHeight div 2+v1[i].y);
end;
end;
procedure Sort;
var
i:integer;
begin
for i:=1 to nPOLYGON do
begin
s[i]:=(v1[polygons[i].a].z+v1[polygons[i].b].z+v1[polygons[i].c].z)/3;
//координаты вектора нормали
n[i].x:=v1[polygons[i].a].y*(v1[polygons[i].b].z-v1[polygons[i].c].z)+
v1[polygons[i].b].y*(v1[polygons[i].c].z-v1[polygons[i].a].z)+
v1[polygons[i].c].y*(v1[polygons[i].a].z-v1[polygons[i].b].z);