当前位置:首页 >> 计算机软件及应用 >>

C++计算点到直线的距离


C++计算点到直线的距离
#include<iostream.h> #include<math.h> class Point {private: float x,y; public: Point(float a,float b); float getX(); float getY(); void print(); }; Point::Point(float a,float b) { x=a; y=b; } float Point::getX() { return x; } float Point::getY() { return y; } void Point::print() { cout<<"("<<","<<y<<")"<<endl; } class Line { private: Point p1,p2; public: Line(Point &, Point &);

friend float distance(Line &p,Point &q); }; Line::Line(Point &_p1,Point &_p2):p1(_p1),p2(_p2) { p1=_p1; p2=_p2; } float distance(Line &p,Point &q) { float x1=p.p1.getX(); float y1=p.p1.getY(); float x2=p.p2.getX(); float y2=p.p2.getY(); float x=q.getX(); float y=q.getY(); return ((x-x1)*(y2-y1)-(x2-x1)*(y-y1))/sqrt((x2-x1)*(x2-x1)+(y2-y1)* (y2-y1)); } void main() { Point p1(2,4); Point p2(7,9); Point p(0,0); Line L(p1,p2); cout<<distance(L,p)<<endl; } /*编写一个程序求直角坐标系中点到直线的距离。具体要求如下: (1)定义一个点的类Point,含有: 私有数据成员: float x,y;分别代表点的横坐标和纵坐标 公有成员函数: Point(float a,float b);分别对x和y初始化 float getX(),float getY();分别返回横坐标和纵坐标

void print();以(x,y)的形式输出点 (2)定义一个直线类Line,含有: 私有数据成员: Point p1,p2;分别表示直线的两个端点 公有成员函数: Line(Point &,Point &);分别对p1和p2初始化 友元函数float distance(Line &p,Point &q);计算并输出点到直线 的距离 点(x,y)到由(x1,y1)和(x2,y2)两点确定的直线的距离公式为: (3)在主函数中利用上述类定义一个点和一条直线,计算并输出点到 直线间的距离。*/


相关文章:
更多相关标签: