Friday, 29 March 2013



Program for Polygon Clipping Using c 




#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void clip(float,float,float);
int i,j=0,n;
int rx1,rx2,ry1,ry2;
float x1[8],y1[8];
void main()
{
int gd=DETECT,gm;
int i,n;
float x[8],y[8],m;
clrscr();
initgraph(&gd,&gm,"");
printf("coordinates for rectangle : ");
scanf("%d%d%d%d",&rx1,&ry1,&rx2,&ry2);
printf("no. of sides for polygon : ");
scanf("%d",&n);
printf("coordinates : ");
for(i=0;i<n;i++)
{
scanf("%f%f",&x[i],&y[i]);
}
cleardevice();
outtextxy(10,10,"Before clipping");
outtextxy(10,470,"Press any key....");
rectangle(rx1,ry1,rx2,ry2);
for(i=0;i<n-1;i++)
line(x[i],y[i],x[i+1],y[i+1]);
line(x[i],y[i],x[0],y[0]);
getch();
cleardevice();
for(i=0;i<n-1;i++)
{
m=(y[i+1]-y[i])/(x[i+1]-x[i]);
clip(x[i],y[i],m);
clip(x[i+1],y[i+1],m);
}
m=(y[i]-y[0])/(x[i]-x[0]);
clip(x[i],y[i],m);
clip(x[0],y[0],m);
outtextxy(10,10,"After clipping");
outtextxy(10,470,"Press any key....");
rectangle(rx1,ry1,rx2,ry2);
for(i=0;i<j-1;i++)
line(x1[i],y1[i],x1[i+1],y1[i+1]);
getch();
}

void clip(float e,float f,float m)
{
while(e<rx1 || e>rx2 || f<ry1 || f>ry2)
{
if(e<rx1)
{
f+=m*(rx1-e);
e=rx1;
}
else if(e>rx2)
{
f+=m*(rx2-e);
e=rx2;
}
if(f<ry1)
{
e+=(ry1-f)/m;
f=ry1;
}
else if(f>ry2)
{
e+=(ry2-f)/m;
f=ry2;
}
}
x1[j]=e;
y1[j]=f;
j++;
}

Saturday, 23 March 2013


Cohen Sutherland Line Clipping Algorithm in C Program



#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void clip(float,float,float);
int i,j=0,n;
int rx1,rx2,ry1,ry2;
float x1[8],y1[8];
void main()
{
int gd=DETECT,gm;
int i,n;
float x[8],y[8],m;
clrscr();
initgraph(&gd,&gm,"");
printf("coordinates for rectangle : ");
scanf("%d%d%d%d",&rx1,&ry1,&rx2,&ry2);
printf("no. of sides for polygon : ");
scanf("%d",&n);
printf("coordinates : ");
for(i=0;i<n;i++)
{
scanf("%f%f",&x[i],&y[i]);
}
cleardevice();
outtextxy(10,10,"Before clipping");
outtextxy(10,470,"Press any key....");
rectangle(rx1,ry1,rx2,ry2);
for(i=0;i<n-1;i++)
line(x[i],y[i],x[i+1],y[i+1]);
line(x[i],y[i],x[0],y[0]);
getch();
cleardevice();
for(i=0;i<n-1;i++)
{
m=(y[i+1]-y[i])/(x[i+1]-x[i]);
clip(x[i],y[i],m);
}
clip(x[0],y[0],m);
outtextxy(10,10,"After clipping");
outtextxy(10,470,"Press any key....");
rectangle(rx1,ry1,rx2,ry2);
for(i=0;i<j-1;i++)
line(x1[i],y1[i],x1[i+1],y1[i+1]);
getch();
}

void clip(float e,float f,float m)
{
while(e<rx1 e>rx2 f<ry1 f>ry2)
{
if(e<rx1)
{
f+=m*(rx1-e);
e=rx1;
}
else if(e>rx2)
{
f+=m*(rx2-e);
e=rx1;
}
if(f<ry1)
{
e+=(ry1-f)/m;
f=ry1;
}
else if(f>ry2)
{
e+=(ry2-f)/m;
f=ry2;
}
x1[j]=e;
y1[j]=f;
j++;
}
}

OUTPUT

Enter the x1 & y1 coordinates:
X1 : 70
Y1 : 80
Enter the x2 & y2 coordinates:
X2 : 250
Y2 : 280

Cohen Sutherland Line Clipping Algorithm  computer Graphics Lab

Saturday, 2 March 2013

Rotation of Circle


#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<dos.h>
#include<stdlib.h>
#include<math.h>
#include<iostream.h>
main()
{
int gd=DETECT,gm,x=295,y=222,a,j,i;
initgraph(&gd,&gm,"..//bgi");
setcolor(14);
outtextxy(x-60,y,"FIRST SOFT TECH");
while(!kbhit())
{
i++;

delay(1);
setcolor(16);
circle(x+(200*cos(i)),y+(200*sin(i)),8);
setcolor(10);
circle(x+(200*cos(i+40)),y+(200*sin(i+40)),8);
//set2
setcolor(16);
circle(x+(160*sin(i)),y+(160*cos(i)),7); //anti clockwise:-sin,cosinterchanged
circle(x+(160*sin(i)),y+(160*cos(i)),5);
setcolor(i);
circle(x+(160*sin(i+40)),y+(160*cos(i+40)),7);
circle(x+(160*sin(i+40)),y+(160*cos(i+40)),5);

setcolor(16);
circle(x+(120*sin(i)),y+(120*cos(i)),6);//anti clockwise:-sin,cosinterchanged
setcolor(12);
circle(x+(120*sin(i+40)),y+(120*cos(i+40)),6);

setcolor(16);
circle(x+(90*cos(i)),y+(90*sin(i)),5);
setcolor(i);
circle(x+(90*cos(i+40)),y+(90*sin(i+40)),5);
}
getch();
return 0;
}

Shearing of 2D object


#include"2dframe.CPP"
#include<iostream.h>

void shear_rectangle(int ,int,int ,int ,float );
void main()
{
    int gd=DETECT,gm;
    initgraph(&gd,&gm,"c:\\tc\\bgi");
    cout<<"\nEnter Your 2D-Frame Length:\n";
    cout<<"\nANY VALUE  BETWEEN 1000 - 30000:";
    cin>>frame_length;
    int x_start=0,y_start=0,length_x,breadth_y;
    cout<<"\nEnter the Start point of the rectangle\n";
    cin>>x_start>>y_start;
    cout<<"\nEnter length,breadth of Rectagle:\n";
    cin>>length_x ;
    cin>>breadth_y;
    DRAW2DFRAME();
    //CREATE THE RECTANGLE
    rectangle2d(x_start,y_start,length_x,breadth_y);
    getch();
    cleardevice();
    float sh;
    cout<<"\nFor this Rectangle : ";
    cout<<"\nMAX Range Of Shear factor along Y-axis=0.0 TO\t ";
    cout<<(frame_length/breadth_y);
    cout<<"\nEnter the shear factors:sh\n";
    cin>>sh;
    DRAW2DFRAME();
    outtextxy(25,40,"Before Shear");
    rectangle2d(x_start,y_start,length_x,breadth_y);
    getch();
    DRAW2DFRAME();
    outtextxy(25,40,"After Shear");
    shear_rectangle(x_start,y_start,length_x,breadth_y,sh);
    getch();
    closegraph();

}

void shear_rectangle
(int x,int y,int length_x,int breadth_y,float sh)
{
     int arr1[2],arr2[2],arr3[2],arr4[2];
     int X1,Y1,X2,Y2;
     int x1,y1,x2,y2;
     ///////////////////////////////////////////////////////////////////
     x1=x,y1=y;
     x2=x1,y2=y1+breadth_y;
     shear_point_Y(x1,y1,sh);
     X1=P1[0][0];
     Y1=P1[0][1];
     shear_point_Y(x2,y2,sh);
     X2=P1[0][0];
     Y2=P1[0][1];
     line2d(X1,Y1,X2,Y2,arr1,arr2,YELLOW);
     //*******************************************************************
     //*******************************************************************
     x1=x+length_x;y1=y;
     x2=x+length_x,y2=y+breadth_y;
     shear_point_Y(x1,y1,sh);
     X1=P1[0][0];
     Y1=P1[0][1];
     shear_point_Y(x2,y2,sh);
     X2=P1[0][0];
     Y2=P1[0][1];
     line2d(X1,Y1,X2,Y2,arr1,arr2,GREEN);
     //****************************************************************
     //****************************************************************
     x1=x,y1=y;
     x2=x+length_x,y2=y1;
     shear_point_Y(x1,y1,sh);
     X1=P1[0][0];
     Y1=P1[0][1];
     shear_point_Y(x2,y2,sh);
     X2=P1[0][0];
     Y2=P1[0][1];
     line2d(X1,Y1,X2,Y2,arr1,arr2,LIGHTBLUE);
     //*******************************************************************
     //*******************************************************************
     x1=x,y1=y+breadth_y;
     x2=x+length_x,y2=y+breadth_y;
     shear_point_Y(x1,y1,sh);
     X1=P1[0][0];
     Y1=P1[0][1];
     shear_point_Y(x2,y2,sh);
     X2=P1[0][0];
     Y2=P1[0][1];
     line2d(X1,Y1,X2,Y2,arr1,arr2,MAGENTA);
     ///////////////////////////////////////////////////////////////////
     //******************************************************************
     //******************************************************************
}

Activate Office 365 - 2019 Version

                        Link to install office 365 https://windowsedition.com/download-office-365-offline-installer-iso/ Follow the bel...