#include <stdio.h>
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main(void){int i,Driver,Mode,errorcode; int sx0, sy0;
float kx,ky,kz,ax,ay,az,sxn,syn,sxk,syk,grOk; double sin30,cos30;
/* 1. Ввод значений исходных данных */
int n=6;
int xn[20]={40, 0,20,40, 0,20},
yn[20]={10,10,40,10,10,40},
zn[20]={ 0, 0, 0, 0, 0, 0},
xk[20]={ 0,20,40,20,20,20},
yk[20]={10,40,10,20,20,20},
zk[20]={ 0, 0, 0,40,40,40};
sx0=110;sy0=130;sin30=sin(30./180.*3.14);cos30=cos(30./180.*3.14);
kx=0.82;ky=0.82;kz=0.82;
/* 2. Инициализация графики */
Driver=DETECT; initgraph(&Driver,&Mode," ");
errorcode=graphresult(); if(errorcode !=grOk)
{printf("Ошибка графики:%s код=%d",
grapherrormsg(errorcode), errorcode); exit(1);}
/* вычерчивание рамки формата А4*/
rectangle(2,1,210,297); rectangle(20,5,205,294);
line(20,239,205,239);
outtextxy(30,250,"Tast s1. Karkas "); outtextxy(30,260,"Petrov");
outtextxy(30,270,"gr. 321 num 01"); outtextxy(30,280,"15.05.97");
/* 3. Организация основных циклов вычислений линии ребер каркасной
модели */
for(i=0;i<=n;i++){
ax=xn;ay=yn;az=zn;
sxn=sx0-ax*kx*cos30+ ay*ky*cos30;syn=sy0- (az*kz-ax*kx*sin30-
ay*ky*sin30);
ax=xk;ay=yk;az=zk;
sxk=sx0-ax*kx*cos30+ ay*ky*cos30;syk=sy0- (az*kz-ax*kx*sin30-
ay*ky*sin30);
line(sxn,syn,sxk,syk); };/*next i*/
/* оси координат и их обозначение */
ax=50;ay=0;az=0;
sxk=sx0-ax*kx*cos30+ ay*ky*cos30;syk=sy0- (az*kz-ax*kx*sin30-
ay*ky*sin30);
line(sx0,sy0,sxk,syk);outtextxy(sxk-10 ,syk,"X");
ax=0;ay=50;az=0;
sxk=sx0-ax*kx*cos30+ ay*ky*cos30;syk=sy0- (az*kz-ax*kx*sin30-
ay*ky*sin30);
line(sx0,sy0,sxk,syk);outtextxy(sxk+10,syk,"Y");
ax=0;ay=0;az=50;
sxk=sx0-ax*kx*cos30+ ay*ky*cos30;syk=sy0- (az*kz-ax*kx*sin30-
ay*ky*sin30);
line(sx0,sy0,sxk,syk);outtextxy(sxk,syk-10,"Z");
/* 4. Закрытие графического режима*/
while(!kbhit()); closegraph();
/* окончание программы */
return(0);}