-->
Program to transform object ( Tringle or rectangle or Polygon) from window to view port. - MASTER GUIDE

Program to transform object ( Tringle or rectangle or Polygon) from window to view port. - MASTER GUIDE

 Program to transform object ( Tringle or rectangle or Polygon)from window to view port.

#include <stdio.h>
#include<graphics.h>

void main()
{
int gd=DETECT,gm,n,i;
int xwmax , ywmax , xwmin , ywmin; // boundary values for window
int xvmax , yvmax , xvmin , yvmin ; // boundary values for viewport
float sx, sy;
//obj - object inside the window , view - object inside viewport
int objx[10],objy[10],viewx[10],viewy[10];
initgraph(&gd,&gm,"C:\\TURBOC3\\BGI");
printf("Enter the window coordinates(xwmin,ywmin,xwmax,ywmax):");
scanf("%d%d%d%d",&xwmin,&ywmin,&xwmax,&ywmax);
printf("Enter viewport coordinates (xvmin,yvmin,xvmax,yvmax):");
scanf("%d%d%d%d",&xvmin,&yvmin,&xvmax,&yvmax);
printf("Enter number of vertices:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Enter x and y coordinates of vertices:");
scanf("%d%d",&objx[i],&objy[i]);
}
cleardevice();

//draw window and plot an object inside the window
setcolor(RED);
outtextxy(xwmin,ywmin-10, "Window");
rectangle(xwmin,ywmin,xwmax,ywmax);
for(i=0;i<n-1;i++)
  line(objx[i],objy[i],objx[i+1],objy[i+1]);
line(objx[i],objy[i],objx[0],objy[0]);
getch();
// calculating scaling factor sx and sy
sx = (float)(xvmax - xvmin) / (xwmax - xwmin);
sy = (float)(yvmax - yvmin) / (ywmax - ywmin);
// calculating the points of an object on viewport
for(i=0;i<n;i++)
{
viewx[i]= xvmin + (float)((objx[i] - xwmin) * sx);
viewy[i]=yvmin + (float)((objy[i] - ywmin) * sy);
}
//draw viewport and plot an object inside viewport
setcolor(BLUE);
outtextxy(xvmin,yvmin-10, "Viewport");
rectangle(xvmin,yvmin,xvmax,yvmax);
for(i=0;i<n-1;i++)
line(viewx[i],viewy[i],viewx[i+1],viewy[i+1]);
line(viewx[i],viewy[i],viewx[0],viewy[0]);
getch();
closegraph();
}

OUTPUT:

Related Posts

0 Response to "Program to transform object ( Tringle or rectangle or Polygon) from window to view port. - MASTER GUIDE"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel