C++ Points Inside Rectangles Use the "Vec.h" and "Rect.h" classes. Write a program to do the following: - First, your program will continuously read as input lines with 4 floats. Each set of 4 floats will define a 2D rectangle using your Rect class. Add each Rect to a container data structure of your choice, such as std::vector. Stop reading rectangles when your program reads 4 negative float values (do not create the rectangle with 4 negative float values). - Next, continuously read as input lines with 2 floats. Each pair of floats here will define a 2D point using your Vec class. For each point, print out its classification (whether it is inside or outside) with respect to all previously read rectangles. Stop reading points and end the program when you read (-99.0f,-99.0f). EXAMPLE RUN: Type 4 floats to define a rectangle: -3 3 6 6 Type 4 floats to define the next rectangle: -2 2 4 4 Type 4 floats to define the next rectangle: -1 1 2 2 Type 4 floats to define the next rectangle: -1 -1 -1 -1 Type 2 floats to define a point: 0 0 The point is INSIDE of rectangle 0 The point is INSIDE of rectangle 1 The point is INSIDE of rectangle 2 Type 2 floats to define the next point: 2 0 The point is INSIDE of rectangle 0 The point is INSIDE of rectangle 1 The point is OUTSIDE of rectangle 2 Type 2 floats to define the next point: 2.5 1 The point is INSIDE of rectangle 0 The point is OUTSIDE of rectangle 1 The point is OUTSIDE of rectangle 2 Type 2 floats to define the next point: 4 4 The point is OUTSIDE of rectangle 0 The point is OUTSIDE of rectangle 1 The point is OUTSIDE of rectangle 2 Type 2 floats to define the next point: -99 -99 Finished!   Vec.h #ifndef VEC_H #define VEC_H   using namespace std;   class Vec { public: float x, y;   Vec() : x(0.0f), y(0.0f) {} Vec(float x_, float y_) : x(x_), y(y_) {}   void set(float x_, float y_) { x = x_; y = y_; }   void add(const Vec& other) { x += other.x; y += other.y; }   void print() const { cout << "(" << x << ", " << y << ")\n"; } };   #endif   Rect.h #ifndef RECT_H #define RECT_H   #include "Vec.h"   class Rect { private: float x, y, width, height;   public: Rect(float x_, float y_, float width_, float height_) : x(x_), y(y_), width(width_), height(height_) {}     bool contains(const Vec& point) const { return (point.x >= x && point.x <= x + width && point.y <= y && point.y >= y - height);   } };   #endif

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

C++

Points Inside Rectangles

Use the "Vec.h" and "Rect.h" classes.

Write a program to do the following:
- First, your program will continuously read as input lines with 4 floats. Each set of 4 floats will define a 2D rectangle using your Rect class. Add each Rect to a container data structure of your choice, such as std::vector. Stop reading rectangles when your program reads 4 negative float values (do not create the rectangle with 4 negative float values).
- Next, continuously read as input lines with 2 floats. Each pair of floats here will define a 2D point using your Vec class. For each point, print out its classification (whether it is inside or outside) with respect to all previously read rectangles. Stop reading points and end the program when you read (-99.0f,-99.0f).

EXAMPLE RUN:
Type 4 floats to define a rectangle: -3 3 6 6
Type 4 floats to define the next rectangle: -2 2 4 4
Type 4 floats to define the next rectangle: -1 1 2 2
Type 4 floats to define the next rectangle: -1 -1 -1 -1

Type 2 floats to define a point: 0 0
The point is INSIDE of rectangle 0
The point is INSIDE of rectangle 1
The point is INSIDE of rectangle 2

Type 2 floats to define the next point: 2 0
The point is INSIDE of rectangle 0
The point is INSIDE of rectangle 1
The point is OUTSIDE of rectangle 2

Type 2 floats to define the next point: 2.5 1
The point is INSIDE of rectangle 0
The point is OUTSIDE of rectangle 1
The point is OUTSIDE of rectangle 2

Type 2 floats to define the next point: 4 4
The point is OUTSIDE of rectangle 0
The point is OUTSIDE of rectangle 1
The point is OUTSIDE of rectangle 2

Type 2 floats to define the next point: -99 -99
Finished!

 

Vec.h

#ifndef VEC_H

#define VEC_H

 

using namespace std;

 

class Vec {

public:

float x, y;

 

Vec() : x(0.0f), y(0.0f) {}

Vec(float x_, float y_) : x(x_), y(y_) {}

 

void set(float x_, float y_) {

x = x_;

y = y_;

}

 

void add(const Vec& other) {

x += other.x;

y += other.y;

}

 

void print() const {

cout << "(" << x << ", " << y << ")\n";

}

};

 

#endif

 

Rect.h

#ifndef RECT_H

#define RECT_H

 

#include "Vec.h"

 

class Rect {

private:

float x, y, width, height;

 

public:

Rect(float x_, float y_, float width_, float height_) :

x(x_), y(y_), width(width_), height(height_) {}

 

 

bool contains(const Vec& point) const {

return (point.x >= x && point.x <= x + width && point.y <= y && point.y >= y - height);

 

}

};

 

#endif

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Array
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education