Implement a Line class that uses two points which represent

Implement a Line class that uses two points which represent a line. Given: struct Point{double x; double y; Point(double a = theta double b = theta){x = a; y = b;} void display(ostream& out){out

Solution

Here is the code for Line.h:

#include <iostream>
using namespace std;
struct Point
{
double x;
double y;
Point(double a = 0, double b = 0)
{
x = a;
y = b;
}
void display(ostream& out)
{
out << \"(\" << x << \", \" << y << \")\";
}
};
class Line
{
Point p1, p2;
public:
Line();
Line(Point a, Point b);
void setFirstPoint(Point a);
void setSecondPoint(Point a);
Point getFirstPoint() const;
Point getSecondPoint() const;
bool slope(double& m) const;
bool yIntercept(double& b) const;
bool isParallel(Line l) const;
bool isCollinear(Line l) const;
bool isPerpendicular(Line l) const;
Point intersect(Line l) const;
void display(ostream& out) const;
};

And the code for Line.cpp is:

#include \"Line.h\"
Line::Line()
{
p1 = Point(0, 0);
p2 = Point(1, 1);
}
Line::Line(Point a, Point b)
{
p1 = Point(a.x, a.y);
p2 = Point(b.x, b.y);
}
void Line::setFirstPoint(Point a)
{
p1 = a;
}
void Line::setSecondPoint(Point a)
{
p2 = a;
}
Point Line::getFirstPoint() const
{
return p1;
}
Point Line::getSecondPoint() const
{
return p2;
}
bool Line::slope(double& m) const
{
if(p1.x - p2.x == 0)
return false;
m = (p1.y - p2.y) / (double)(p1.x - p2.x);
return true;
}
bool Line::yIntercept(double& b) const
{
double m;
if(this->slope(m))
{
b = p1.y - m * p1.x;
return true;
}
return false;
}
bool Line::isParallel(Line l) const
{
double m1, m2;
if(this->slope(m1) && l.slope(m2))
if(m1 == m2)
return true;
return false;
}
bool Line::isCollinear(Line l) const
{
double m1, m2, b1, b2;
if(this->slope(m1) && l.slope(m2))
{
this->yIntercept(b1);
l.yIntercept(b2);
if(m1 == m2 && b1 == b2)
return true;
}
return false;
}
bool Line::isPerpendicular(Line l) const
{
double m1, m2;
if(this->slope(m1) && l.slope(m2))
{
if(-1/m1 == m2)
return true;
}
else if(!this->slope(m1) && m2 == 0)
return true;
else if(m1 == 0 && !this->slope(m2))
return true;
return false;   
}
Point Line::intersect(Line l) const
{
return p1;
}
void Line::display(ostream& out) const
{
double m, b;
this->slope(m);
this->yIntercept(b);
out << \"y = \" << m << \"x + \" << b;
}

 Implement a Line class that uses two points which represent a line. Given: struct Point{double x; double y; Point(double a = theta double b = theta){x = a; y =
 Implement a Line class that uses two points which represent a line. Given: struct Point{double x; double y; Point(double a = theta double b = theta){x = a; y =
 Implement a Line class that uses two points which represent a line. Given: struct Point{double x; double y; Point(double a = theta double b = theta){x = a; y =

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site