Вы находитесь на странице: 1из 5

Program:

#include<graphics.h>
#include<process.h>
#include<iostream.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
#include<math.h>
class pers
{
public:
pers();
int a,k;
int gd,gm;
int px[8],py[8],pz[8];
int px1[8],py1[8],pz1[8],px3[8],py3[8],pz1[8];
void initialize();
void drawobj();
void proj(int,int);
};
pers::pers() {
gd=DETECT;
initgraph(&gd, &gm, ); }
void pers::initialize()
{
px1[1]=200;py1[1]=200;pz1[1]=100;
px1[2]=300;py1[2]=200;pz1[2]=100;

px1[3]=300;py1[3]=300;pz1[3]=100;
px1[4]=200;py1[4]=300;pz1[4]=100;
px1[5]=200;py1[5]=200;pz1[5]=200;
px1[6]=300;py1[6]=200;pz1[6]=200;
px1[7]=300;py1[7]=300;pz1[7]=200;
px1[8]=200;pz1[8]=300;pz1[8]=200;
}
void pers::drawobj()
{
setcolor(WHITE);
line(px1[1],py1[1],px1[2],py1[2]);
line(px1[2],py1[2],px1[3],py1[3]);
line(px1[3],py1[3],px1[4],py1[4]);
line(px1[4],py1[4],px1[8]+50,py1[8]+50);
line(px1[8]+50,py1[8]+50,px1[5]+50,py1[5]+50);
line(px1[5]+50,py1[5]+50,px1[6]+50,py1[6]+50);
line(px1[6]+50,py1[6]+50,px1[7]+50,py1[7]+50);
line(px1[7]+50,py1[7]+50,px1[8]+50,py1[8]+50);
line(px1[1],py1[1],px1[5]+50,py1[5]+50);
line(px1[2],py1[2],px1[6]+50,py1[6]+50);
line(px1[3],py1[3],px1[7]+50,py1[7]+50);
line(px1[4],py1[4],px1[1],py1[1]);
getch();
}
void pers::proj(int j, int k)
{
cleardevice();

int z, xp, yp;


float zprp, zvp;
float u;
zprp=j, zvp=k;
z=pz1[1];
u=(zprp-zvp)/(zprp-z);
z=pz1[1];
px3[1]=px1[1]*u;
py3[1]=py1[1]*u;
px3[2]=px1[2]*u;
py3[2]=py1[2]*u;
px3[3]=px1[3]*u;
py3[3]=py1[3]*u;
px3[4]=px1[4]*u;
py3[4]=py1[4]*u;
z=pz1[5];
u=(zprp-zvp)/(zprp-z);
px3[5]=px1[5]*u;
py3[5]=py1[5]*u;
px3[6]=px1[6]*u;
py3[6]=py1[6]*u;
px3[7]=px1[7]*u;
py3[7]=py1[7]*u;
px3[8]=px1[8]*u;
py3[8]=py1[8]*u;
cleardevice();
cout<<"enter the projected object";

line(px3[1],py3[1],px3[2],py3[2]);
line(px3[2],py3[2],px3[3],py3[3]);
line(px3[3],py3[3],px3[4],py3[4]);
line(px3[4],py3[4],px3[1],py3[1]);
line(px3[5],py3[5],px3[6],py3[6]);
line(px3[6],py3[6],px3[7],py3[7]);
line(px3[7],py3[7],px3[8],py3[8]);
line(px3[8],py3[8],px3[5],py3[5]);
line(px3[1],py3[1],px3[5],py3[5]);
line(px3[2],py3[2],px3[6],py3[6]);
line(px3[3],py3[3],px3[7],py3[7]);
line(px3[4],py3[4],px3[8],py3[8]);
}
void main() {
pers p1;
int a, b;
clrscr();
cleardevice();
cout<<perspective projection<<endl;
p1.initialize();
p1.drawobj();
cout<<enter the reference point in z-axis<<endl;
cin>>a>>b;
cout<<enter the position of view plane<<endl;
p1.proj (a, b);
getch();
}

OUTPUT:
Perspective projection

Enter the reference point x-axis:


50
100
Enter the projected object:

Вам также может понравиться