0% found this document useful (0 votes)
2 views3 pages

3d Rotation

The document contains a C program for performing 3D rotation of a rectangular bar using graphics. It prompts the user to input coordinates for the top left and bottom right corners of the rectangle, calculates the depth for the 3D effect, and allows the user to specify an angle for rotation. The program uses trigonometric functions to compute the new coordinates after rotation and displays the transformed shape.

Uploaded by

moinuddhin0
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views3 pages

3d Rotation

The document contains a C program for performing 3D rotation of a rectangular bar using graphics. It prompts the user to input coordinates for the top left and bottom right corners of the rectangle, calculates the depth for the 3D effect, and allows the user to specify an angle for rotation. The program uses trigonometric functions to compute the new coordinates after rotation and displays the transformed shape.

Uploaded by

moinuddhin0
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Program for 3D Rotation

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
int x1,x2,y1,y2,mx,my,depth;
void draw();
void rotate();
void main()
{
int gd=DETECT,gm,c;
initgraph(&gd,&gm,"C:\\TurboC3\\BGI");
printf("\n3D Transformation Rotating\n\n");
printf("\nEnter 1st top value(x1,y1):");
scanf("%d%d",&x1,&y1);
printf("Enter right bottom value(x2,y2):");
scanf("%d%d",&x2,&y2);
depth=(x2-x1)/4;
mx=(x1+x2)/2;
my=(y1+y2)/2;
draw();
getch();
cleardevice();
rotate();
getch();
}
void draw()
{
bar3d(x1,y1,x2,y2,depth,1);
}
void rotate()
{
float t;
int a1,b1,a2,b2,dep;
printf("Enter the angle to rotate=");
scanf("%f",&t);
t=t*(3.14/180);
a1=mx+(x1-mx)*cos(t)-(y1-my)*sin(t);
a2=mx+(x2-mx)*cos(t)-(y2-my)*sin(t);
b1=my+(x1-mx)*sin(t)-(y1-my)*cos(t);
b2=my+(x2-mx)*sin(t)-(y2-my)*cos(t);
if(a2>a1)
dep=(a2-a1)/4;
else
dep=(a1-a2)/4;
bar3d(a1,b1,a2,b2,dep,1);
setcolor(5);
}

Output

You might also like