Читать курсовая по Отсутствует: "Проектирование трехмерной сцены в нестандартном графическом режиме" Страница 8

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

проектирования. СПИСОК ЛИТЕРАТУРЫ1. А.Е.Гордеев, Ю.В. Молчанов. Системное программное обеспечение. СПб.: - Питер, 2003. -736 стр.

. Общие характеристики основных языков программирования [Электронный ресурс]: - Режим доступа: http://sapr.mgsu.ru/biblio/ibm/contents/jaziki.htm

. В.Ю.Пирогов. ASSEMBLER.: - Москва, изд. Нолидж, 2001. - 848 стр.

. Лабор В.В. Си Шарп: Создание приложений для Windows- Мн.: Харвест, 2003. -384 стр.

5. Аналитическая геометрия / В.А.Ильин, Э.Г. Позняк. М.:Наука,1981 г.-232с.

. Математика и САПР: В 2-х кн. Кн. 1./ Шенен П., Коснар М., Гардан И. и др.-М.: Мир, 1988.-204 стр. ПРИЛОЖЕНИЯ Приложение 1 ТЕКСТ ПРОГРАММЫ

uses dos,crt;

type= record,y,z:real;;= record,point2:integer;;:array[0..200] of tpoint;:array[0..200] of tpoint;:array[0..320] of tline;:pointer;:word;:integer=0;:integer=0;=0.8;clearscreen;(mem[fakeseg:0],64000,0);;showscreen;(mem[fakeseg:0],mem[$a000:0],64000);;rotate(xalpha,yalpha,zalpha:real; temppoints:array of tpoint; var rpoints:array of tpoint);:integer;:=0;:=yalpha/90;:=-45;xalpha0 theni:=0 to numpoints do[i].x:=temppoints[i].x;[i].y:=temppoints[i].y*cos(xalpha)-temppoints[i].z*sin(xalpha);[i].z:=temppoints[i].y*sin(xalpha)+temppoints[i].z*cos(xalpha);;yalpha0 thenxalpha0 then move(rpoints,temppoints,sizeof(points));i:=0 to numpoints do[i].x:=temppoints[i].x*cos(yalpha)-temppoints[i].z*sin(yalpha);[i].y:=temppoints[i].y;[i].z:=temppoints[i].x*sin(yalpha)+temppoints[i].z*cos(yalpha);;;zalpha0 then(xalpha0) or (yalpha0) then move(rpoints,temppoints,sizeof(points));i:=0 to numpoints do[i].x:=temppoints[i].x*cos(zalpha)-temppoints[i].y*sin(zalpha);[i].y:=temppoints[i].x*sin(zalpha)+temppoints[i].y*cos(zalpha);[i].z:=temppoints[i].z;;;;addperspective(v:real);:integer;i:=0 to numpoints do[i].x:=rpoints[i].x/(1-rpoints[i].z/v);[i].y:=rpoints[i].y/(1-rpoints[i].z/v);;;initgraph;: registers;;.ah:=$00;.ax:=$13;($10,r);;;closegraph;: registers;;.ah:=$00;.ax:=$03;($10,r);;;drawp(x,y:integer;color:byte);(x>=0)and(x=0)and(yabs(y2-y1) thenx2-x10 then ys:=(y2-y1)/(x2-x1) else ys:=0;x1>x2 then(y1,y2);swap(x1,x2);;i:=0 to abs(x2-x1) do(x1+i,y1+round(i*ys),color)y2-y10 then xs:=(x2-x1)/(y2-y1) else xs:=0;y1>y2 then(y1,y2);swap(x1,x2);;i:=0 to abs(y2-y1) do(x1+round(i*xs),y1+i,color);;;init(nums,radius:integer);,y,z:integer;:=160;

{---cilindr--------------------------------}i:=0 to 19 do[i].x:=-50;[i].y:=radius*cos(pi*i/nums);[i].z:=radius*sin(pi*i/nums);[i+20].x:=50;[i+20].y:=radius*cos(pi*i/nums);[i+20].z:=radius*sin(pi*i/nums);;

{piramida}i:=0 to 6 do[143+i].x:=-50;[143+i].y:=(radius-10)*cos(pi*i*3/nums);[143+i].z:=(radius-10)*sin(pi*i*3/nums);;[150].x:=15; points[150].y:=0; points[150].z:=0;

{segment}:=0;z:=0 to 19 do[y*20+z+40].x:=cos(pi*(2)/nums)*35+45;[y*20+z+40].y:=cos(pi*z/nums)*sin(pi*(y)/nums)*40;[y*20+z+40].z:=sin(pi*z/nums)*sin(pi*(y)/nums)*40;;y:=0 to 4 doz:=0 to 19 do[y*20+z+40].x:=cos(pi*(y)/nums)*35+45;[y*20+z+40].y:=cos(pi*z/nums)*sin(pi*(y)/nums)*40;[y*20+z+40].z:=sin(pi*z/nums)*sin(pi*(y)/nums)*40;;:=320;

{cilindr}i:=0 to 19 do[i].point1:=i;[i].point2:=i+1;[20+i].point1:=20+i;[20+i].point2:=20+i+1;[40+i].point1:=i;[40+i].point2:=20+i;;[19].point1:=19;[19].point2:=0;[39].point1:=39;[39].point2:=20;[80].point1:=19;[80].point2:=39;

{pyramid}

{ lines[279].point1:=149; lines[279].point2:=143;[300].point1:=159; lines[300].point2:=0;}i:=0 to 6 do[260+i].point1:=143+i; lines[260+i].point2:=144+i;[280+i].point1:=143+i; lines[280+i].point2:=3*i;[300+i].point1:=143+i; lines[300+i].point2:=150;;

{segment}y:=0 to 4 do[79+20*y].point1:=79+20*y;[79+20*y].point2:=60+20*y;z:=0 to 18 do[60+20*y+z].point1:=40+20*y+z;[60+20*y+z].point2:=40+20*y+z+1;;;y:=0 to 3 doz:=0 to 19 do[159+20*y+z].point1:=40+20*y+z;[159+20*y+z].point2:=40+20*y+z+20;;i:=0 to 19 do[240+i].point1:=120+i;[240+i].point2:=20+i;;;draw(xs,ys:integer);:integer;i:=0 to numlines-1 do(xs+round(rpoints[lines[i].point1].x),+round(rpoints[lines[i].point1].y*yfx),+round(rpoints[lines[i].point2].x),+round(rpoints[lines[i].point2].y*yfx),15);;;:integer;:=0;;(9,50);(fakeptr,64000);:=seg(fakeptr^);not keypressed do;;(alpha,alpha*2,alpha*0.3,points,rpoints);(200);(160,100);(alpha);;

closegraph;. Приложение 2 РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ

На рис. П.2.1 и П.2.2 представлена исходная фигура под разными углами.

Рис. П.2.1

Рис. П. 2.2


Интересная статья: Основы написания курсовой работы