Skip to main content

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();
}

Comments

Popular posts from this blog

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);