//<!--CS602 ASSIGNMENT 2 SOLUTION-->
//<!--FALL 2019-->
//<!--DUE DATE: 27 NOVEMBER, 2019-->
//PRE-PARED BY: SUPERSTARWEBTECH.COM
//CONNECT WITH US:FACEBOOK.COM/SUPERSTARWEBTECH
//E-MAIL:
[email protected]
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
class House
{
private:
int x1,x2,x3,x4,x5;
int y1,y2,y3;
int dx1, dx2;
int dy1, dy2;
int xc,yc;
public:
House()
{
xc=45;
yc=65; //center of figure
x1=30;
x2=x1+50;
x3=20;
x4=x3+20;
x5=x4+50;
y1=30;
y2=y1+20;
y3=y2+50;
dx1=x3+5;
dx2=dx1+10;
dy1=y2+30;
dy2=dy1+20;
}
void translate(int tx, int ty) //draw translate house
{
x1+=tx;
x2+=tx;
x3+=tx;
x4+=tx;
x5+=tx;
y1+=ty;
y2+=ty;
y3+=ty;
dx1+=tx;
dx2+=tx;
dy1+=ty;
dy2+=ty;
}
void scale(int sx, int sy) //draw scaled house
{
x1=xc+(x1-xc)*sx;
x2=xc+(x2-xc)*sx;
x3=xc+(x3-xc)*sx;
x4=xc+(x4-xc)*sx;
x5=xc+(x5-xc)*sx;
y1=yc+(y1-yc)*sy;
y2=yc+(y2-yc)*sy;
y3=yc+(y3-yc)*sy;
dx1=xc+(dx1-xc)*sx;
dx2=xc+(dx2-xc)*sx;
dy1=yc+(dy1-yc)*sy;
dy2=yc+(dy2-yc)*sy;
}
void reflectx(int rx)
{
y1=-y1+rx;
y2=-y2+rx;
y3=-y3+rx;
dy1=-dy1+rx;
dy2=-dy2+rx;
}
void reflecty(int ry)
{
x1=-x1+ry;
x2=-x2+ry;
x3=-x3+ry;
x4=-x4+ry;
x5=-x5+ry;
dx1=-dx1+ry;
dx2=-dx2+ry;
}
void drawH() //draw house
{
int arr[]={x1,y1,x2,y1,x5,y2,x5,y3,x3,y3,x3,y2,x1,y1,x4,y2,x4,y3,x3,y3,x3,y2,x5,y2};
drawpoly(12,arr); //draw house
rectangle(dx1,dy1,dx2,dy2); //draw house door
}
void fillH()
{
setfillstyle(HATCH_FILL,GREEN);
floodfill(x1+1,y1+10,WHITE);
floodfill(x1+1,y1+1,WHITE);
setfillstyle(SOLID_FILL,RED);
floodfill(x3+1,y2+1,WHITE);
setfillstyle(SOLID_FILL,YELLOW);
floodfill(x4+1,y2+1,WHITE);
setfillstyle(SOLID_FILL,GREEN);
floodfill(dx1+1,dy1+1,WHITE);
}
void fillH2(){
setfillstyle(HATCH_FILL,GREEN);
floodfill(x1+1,y1-10,WHITE);
floodfill(x1+1,y1-1,WHITE);
setfillstyle(SOLID_FILL,RED);
floodfill(x3+1,y2-1,WHITE);
setfillstyle(SOLID_FILL,YELLOW);
floodfill(x4+1,y2-1,WHITE);
setfillstyle(SOLID_FILL,GREEN);
floodfill(dx1+1,dy1-1,WHITE);
}
};
int main()
{
int gd=DETECT, gm;
initgraph(&gd,&gm,(char*)" ");
setcolor(WHITE);
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
outtextxy(2, 2, (char*)"BC123456789");
House house;
//draw main house
house.drawH();
house.fillH();
outtextxy(2, 110, (char*)"1) Original");
//draw translated house
house.translate(200,0);
house.drawH();
house.fillH();
outtextxy(200, 110, (char*)"2) Translated");
//draw scaled house
house.translate(-190,70);
house.scale(2,2);
house.drawH();
house.fillH();
outtextxy(2, 280, (char*)"3) Scaled");
int x=90;
int y=350;
House h2;
// draw reflected house
h2.translate(200,70);
h2.reflecty(x);
h2.reflectx(y);
h2.reflecty(x);
h2.drawH();
h2.fillH2();
outtextxy(200, 270, (char*)"4) Reflected");
getch();
closegraph();
}
//<!--NOTE-->
//<!--MAKE CHANGES ACCORDING TO YOUR REQUIREMENTS-->
//<!--DO NOT POST ON OTHER PORTALS THIS WILL LEAD TO COPYING OF CODE AND THEN YOU WILL GET ZERO MARKS FOR IT-->
//<!--PLUS TYPE YOUR OWN SOLUTION FOR NOT LOSING MARKS-->
//<!--DO NOT COPY PASTE-->
//<!--WE ARE NOT RESPONSIBLE FOR GETTING ZERO MARKS IN ASSIGNMENT-->
//PRE-PARED BY: SUPERSTARWEBTECH.COM
//CONNECT WITH US:FACEBOOK.COM/SUPERSTARWEBTECH
//E-MAIL:
[email protected]
CS602_2_FALL_2019.txt
Displaying CS602_2_FALL_2019.txt.