Question: in C++ design a 2D rectangle class calledRect. Class Rect will need 4 floats to represent a rectangle and you will represent it by storing
in C++
design a 2D rectangle class calledRect. Class Rect will need 4 floats to represent a rectangle and you will represent it by storing the upper-left corner position and then the width andthe height of the rectangle. Your Rect class will at least have a constructor receiving the four floats defining the rectangle and a method called contains for classifying if a given Vec is inside or outside of the rectangle. The coordinate system is the usual 2D XY Euclidean plane. Your Rect class should allow the rectangles.cpp file to run without generating any error messages. You may use the file Vec.h from the previous exercise.
Vec.h
-------------------
#include
using namespace std;
class Vec {
public:
float x,y;
const static Vec null;
Vec() {
x=0;
y=0;
}
Vec(float a, float b) {
x = a;
y = b;
}
void add(Vec n) {
x = x + n.x;
y = y + n.y;
}
void print() {
cout << "(" << x << ", " << y << ")" << endl;
}
};
const Vec Vec::null(0.0f,0.0f);
-----------
rectangles.cpp
#include
#include "Rect.h"
int main(int argc, const char * argv[])
{
Rect a(-5.0f,-5.0f,2.0f,2.0f), b(5.0f,8.0f,2.0f,2.0f);
if ( a.contains(Vec::null) ) std::cout<<"error1 ";
if ( b.contains(Vec::null) ) std::cout<<"error1 ";
if ( !a.contains(Vec(-4.0f,-6.0f)) ) std::cout<<"error ";
if ( b.contains(Vec(6.0f,9.0f)) ) std::cout<<"error ";
std::cout << "Done ";
return 0;
}
-----------------
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
