Solution:
Q. 1 Answer
Q. 2 Write the names of any 10 factors that determine the quality of software?
Answer
Assignment No. 02
Semester: Fall 2019
CS602: Computer Graphics
Total Marks: 20
Due Date: 27th November 2019
Objective
The objective of this assignment is to;
Learn and practice basic concepts of computer graphics like pixels, lines, text etc using Dev-C++. (You can download Dev-C++ setup from LMS)
Learn to draw lines and rigid bodies by using graphics library functions.
Learn the concepts of filled area primitives.
Learn the basic transformations with fundamental matrix operations.
Instructions:
You have to do the following steps first in order to perform the task.
The word document (.doc/docx) or any other file format containing code will not be considered.
If the code files are missing in zip folder, your assignment will be awarded as zero.
Note: No assignment will be accepted after the due date through email in any case (load shedding, server down, internet malfunctioning etc.).
It is recommended to upload solution file at least two days before its closing date.
For any query about the assignment, contact at [email protected]
TASK Marks=20
This task is based on the concepts of basic transformations like translation, scaling and reflection (along axis) of a rigid body. For this purpose you have to implement the following:
You have to make the house with basic shapes as shown in figure. At the top right corner, your VU-ID must be displayed. Mark this picture as ‘Original’.
Now apply translation to the original house and move it to new location on the screen. Mark the translated picture as ‘Translated’.
Now scale the original house by sx=2 and sy=2 and display it somewhere on the screen.
Take reflection along x axis of the original house and display it somewhere on the screen. Mark it as ‘Reflection along x axis’.
Write a code in c++ to implement above functions. It will be a good programming practice that you implement it by creating house class.
//<!--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.