Skip to main content

2D transformation for Rotation in C programming (Computer Graphics).

Program:

#include <math.h>
#include<stdio.h>
#include <conio.h>
#include <graphics.h>
void main()
{
int gd=DETECT,gm,x1,x2,y1,y2,x4,y4;
float angle=0.0,ang;

initgraph(&gd,&gm,"C:\\turboc3\\BGI");
printf("Enter Co-ordinates:");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
line(x1,y1,x2,y2);
printf("Enter the angle:");
scanf("%f",&ang);
angle=(ang*3.14)/180;
x4=x2-(((x2-x1)*cos(angle))-((y2-y1)*sin(angle)));
y4=y2-(((x2-x1)*sin(angle))+((y2-y1)*cos(angle)));
line(x2,y2,x4,y4);
getch();
closegraph();
}

Comments

Popular posts from this blog

2D transformation for reflection in C program (Computer Graphics).

Program: #include<stdio.h> #include<conio.h> #include<graphics.h> #include<stdlib.h> void refx(int x1,int x2,int x3,int y1,int y2,int y3){ line(320,0,320,430); line(0,240,640,240); x1=(320-x1)+320; x2=(320-x2)+320; x3=(320-x3)+320; line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); } void refy(int x1,int x2,int x3,int y1,int y2,int y3){ line(320,0,320,430); line(0,240,640,240); y1=(240-y1)+240; y2=(240-y2)+240; y3=(240-y3)+240; line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); } void main() { int gd=DETECT,gm; int x1,y1,x2,y2,x3,y3; clrscr(); initgraph(&gd,&gm,"c://turboc3//bgi"); line(320,0,320,430); line(0,240,640,240); x1=150;y1=100; x2=220;y2=220; x3=220;y3=110; line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); getch(); refx(x1,x2,x3,y1,y2,y3); getch(); refy(x1,x2,x3,y1,y2,y3); getch(); closegraph(); }

Write a c program for Merge short.

Solution: #include <stdio.h> #include<conio.h> #define max 10 int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 }; int b[11]; void merging(int low, int mid, int high) {    int l1, l2, i;    l1 = low;    l2 = mid + 1;    for(i = low; l1 <= mid && l2 <= high; i++) {       if(a[l1] <= a[l2])       { b[i] = a[l1]; l1++;       }       else          b[i] = a[l2++];    }        while(l1 <= mid)           b[i++] = a[l1++];    while(l2 <= high)          b[i++] = a[l2++];    for(i = low; i <= high; i++)       a[i] = b[i]; } void sort(int low, int high) {    int mid;        if(low < high) {       mid = (low + high) / 2;       sort(low, mid);       sort(mid+1, high);       merging(low, mid, high);    } else {        return;    }    } int main() {     int i;    printf("List before sorting\n");        for(i = 0; i <= max; i++)       printf("%d ", a[i]);    sort(0, max);