vg101 recitation 5
DESCRIPTION
VG101 RECITATION 5. By TAs. CONTENTS. How to read Vg101Class.h Samples about graphics About assignment 5 Array. HOW TO READ VG101CLASS.H. This file defines the following classes: ConsoleT GwindowsT: represent the graphics window GObjectT: base class for all geometric classes LineT - PowerPoint PPT PresentationTRANSCRIPT
VG101RECITATION 5By TAs
CONTENTS
How to read Vg101Class.h Samples about graphics About assignment 5 Array
HOW TO READ VG101CLASS.H
This file defines the following classes:
ConsoleTGwindowsT: represent the graphics window
GObjectT: base class for all geometric classesLineTTriangleTRectangleTArcT: a circle is an arc with an angle of 360
degrees
HOW TO READ VG101CLASS.H
RandomT: random numbers and colors PointT: represent a point using (x, y) PenT: record the current location and color of
the pen MouseT: detect the click event of the mouse,
get mouse current location TextT: set text color, style, font… when
printing a message to the graphics window (not console window)
HOW TO READ VG101CLASS.H
Let’s see what’s the general structure of a class definition
class RectangleT : public GObjectT
{
PointT llp, urp;
void drawRect ();
public:
RectangleT (const double x0 = 0, const double y0 = 0,
const double x1 = 0, const double y1 = 0,
const string clr = "Blue", const double fill = 0);
RectangleT (const PointT &p0, const PointT &p1,
const string clr = "Blue", const double fill = 0);
const PointT &getLocation () {return llp;}
double getWidth () const;
double getHeight () const;
double getArea () const;
void setLocation (const double x, const double y);
void setLocation (const PointT p);
void setWidth (const double w);
void setHeight (const double h);
void draw ();
void draw (const string clr, const double density = 0);
};
Base class
Private membe
r
Public membe
r
constructor
Get & Set
Data members
Function members
HOW TO READ VG101CLASS.H
About constructorsRectangleT (const double x0 = 0, const double y0 = 0,
const double x1 = 0, const double y1 = 0,
const string clr = "Blue", const double fill = 0);
RectangleT (const PointT &p0, const PointT &p1,
const string clr = "Blue", const double fill = 0);
Note: 1. No return type, function name is just its class
name. 2. You should declare an object using one of its
constructors:
HOW TO READ VG101CLASS.H
If the constructor gives the default value of a parameter, then you don’t need to give that parameter.
use RectangleT myRec(); // default position, color, fill
or RectangleT myRec(1, 1, 2, 3); // default color, fill
or RectangleT myRec(1, 1, 2, 3, “red”, 0.5); // p1, p2 are two known PointT object
or RectangleT myRec(p1, p2); // default color, fill
or RectangleT myRec(p1, p2, “green”, 0.8);
HOW TO READ VG101CLASS.H
What are useful to us Get and Set functions
double getWidth () const;
void setWidth (const double w);
Other public functionsvoid draw ();
void draw (const string clr, const double density = 0); // overloaded function
Note:
1. You can’t access private/protected data or use private/protected functions directly.
2. The get & set functions offer you access to some private data.
3. Read function comment carefully.
SAMPLES ABOUT GRAPHICS
Draw a line from (2,1) to (5,3) in red
SAMPLES ABOUT GRAPHICS
Draw an empty triangle specified by three points (1,1), (3, 1), (2.3, 3) in green
SAMPLES ABOUT GRAPHICS
Draw a filled triangle specified by three points (1,1), (3, 1), (2.3, 3) in green with density of 0.4
SAMPLES ABOUT GRAPHICS
Draw an empty rectangle whose lower left point is (0.5, 0.5) and upper right point is (1.5, 1.2) in yellow
SAMPLES ABOUT GRAPHICS
Draw a filled rectangle whose lower left point is (0.5, 0.5) and upper right point is (1.5, 1.2) in yellow with density of 0.8
SAMPLES ABOUT GRAPHICS
Draw an arc start from 0 degree and sweep 270 degree with radius 0.6 in purple, centered at (0.6, 0.6)
SAMPLES ABOUT GRAPHICS
Draw an empty circle with radius 0.6 in purple, centered at (0.6, 0.6)
SAMPLES ABOUT GRAPHICS
Draw a filled circle with radius 0.6 in purple, centered at (0.6, 0.6) with density of 0.9
ABOUT ASSIGNMENT 5
Where’s TomUnderstand the pseudo code for function
takeTomHome ()Every step is a line with constant length
(step size) in a random directionCheck before taking the step if Tom is
going out of the universe (the do-while loop in pseudo code)
Check after taking the step if Tom is already at home
ABOUT ASSIGNMENT 5
Bouncing ballCheck before taking the step if the ball is
going to hit the wallWhen hitting the wall, adjust the location
of the ball so that it just touch the wall (on the line of its original direction)
Change color when change direction
Don’t use magic numbers Give a good name for your variables
ARRAY
An array is an ordered collection of data values of the same type
Passing an array into a function
void initArray(int array[], int n); void printArray(int array[], int n);
Usually, n is the array length
ARRAY A sample on passing an array into a function
#include <Vg101Class.h>#include <cmath>using namespace std;void initArray ( int intArray[], int n);void printArray ( int intArray[], int n);
void main(){
int intArray[4];initArray ( intArray, 4);printArray ( intArray, 4);
}
ARRAY A sample on passing an array into a function
void initArray(int intArray[], int n){
ConsoleT c;for ( int i = 0 ; i < n ; i++){
c.printLine ( "Enter a integer value for the ", i+1, " th element: ");
intArray[i] = c.readInt ("");;}c.printLine ( endl );
}
ARRAY
A sample on passing an array into a function
void printArray(int intArray[], int n){
ConsoleT c;for ( int i = 0 ; i < n ; i++){
c.printLine ( "The ", i+1, " th element is ", intArray[i], endl );}
}
ARRAY
Here is the program’s output