定义一个Myline类,记录两条线段,第一(二)行输出第一(二)条线段的长度(保留两位小数)并判断线段是否与x或y轴相交(相交输出1,否则为0)
第三行输出两线段是否相交(相交为1,否则为0)
#include#include #include using namespace std; class point { public: int x; int y; }; class Myline { public: point e1, e2; double length(point e1, point e2); bool mixs(point e1, point e2); Myline(point, point); friend bool equal(Myline, Myline); }; double Myline::length(point e1, point e2) { return sqrt(pow(float(e1.x - e2.x), 2) + pow(float(e1.y - e2.y), 2)); } bool Myline::mixs(point e1, point e2) { return (e1.x * e2.x <= 0 || e1.y * e2.y <= 0); } Myline::Myline(point p1, point p2) { e1 = p1; e2 = p2; } bool equal(Myline l1, Myline l2) { return((l1.e1.x - l1.e2.x) * (l2.e1.y - l2.e2.y) == (l1.e1.y - l1.e2.y) * (l2.e1.x - l2.e2.x)); } int main() { point p1, p2, p3, p4; cin >> p1.x >> p1.y >> p2.x >> p2.y; cin >> p3.x >> p3.y >> p4.x >> p4.y; Myline L1(p1, p2), L2(p3, p4); cout << fixed << setprecision(2) << L1.length(p1, p2); cout << " " << L1.mixs(p1, p2); cout << endl; cout << fixed << setprecision(2) << L2.length(p3, p4); cout << " " << L2.mixs(p3, p4); cout << endl; cout << equal(L1, L2); return 0; }



