点到直线的距离
相关知识点:
https://baike.baidu.com/item/%E7%9B%B4%E7%BA%BF%E7%9A%84%E4%B8%80%E8%88%AC%E5%BC%8F%E6%96%B9%E7%A8%8B/11052424?fr=aladdin
struct Point{
double x;
double y;
Point(double a,double b):x(a),y(b){};
};
double getDistance(Point p1,Point p2,Point m){
double a=p2.y-p1.y;
double b=p1.x-p2.x;
double c=p2.x*p1.y-p1.x*p2.y;
double dist=abs(a*m.x+b*m.y+c)/sqrt(a*a+b*b);
return dist;
}
double getDistance(Point p1,Point p2){
return sqrt(pow(p1.x-p2.x,2)+pow(p1.y-p2.y,2));
}
int main() {
Point P(0,-2);
Point A(0,1);
Point B(1,-1);
Point C(-1,-1);
cout<<"ABP:"<<getDistance(A,B,P)<<endl;
cout<<"BCP:"<<getDistance(B,C,P)<<endl;
cout<<"ACP:"<<getDistance(A,C,P)<<endl;
cout<<"AP:"<<getDistance(A,P)<<endl;
cout<<"BP:"<<getDistance(B,P)<<endl;
cout<<"CP:"<<getDistance(C,P)<<endl;
}