请帮忙写个代码,谢谢了!
垂点指的是x1,y1向直线y=x做垂线而相交的那个点 为 x2,y2
求C++大牛帮忙,求平面内已知的一个点(x1,y1)到直线y=x的距离 d 以及垂点坐标(x2,y2)
答案:2 悬赏:80
解决时间 2021-03-07 23:35
- 提问者网友:晨熙污妖王
- 2021-03-07 13:30
最佳答案
- 二级知识专家网友:如果这是命
- 2021-03-07 14:53
这是数学问题好吗。。。
全部回答
- 1楼网友:眠于流年
- 2021-03-07 16:23
struct point {
double x,y;
};
struct line {
point a,b;
};
double distance(point p1,point p2) {
return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
double xmult(point p1,point p2,point p0) {
return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
point intersection(point u1,point u2,point v1,point v2) {
point ret=u1;
double t=((u1.x-v1.x)*(v1.y-v2.y)-(u1.y-v1.y)*(v1.x-v2.x))
/((u1.x-u2.x)*(v1.y-v2.y)-(u1.y-u2.y)*(v1.x-v2.x));
ret.x+=(u2.x-u1.x)*t;
ret.y+=(u2.y-u1.y)*t;
return ret;
}
//点到直线距离d
double disptoline(point p,line l) {
return fabs(xmult(p,l.a,l.b))/distance(l.a,l.b);
}
//点到直线上的最近点(x2,y2)
point ptoline(point p,line l) {
point t=p;
t.x+=l.a.y-l.b.y,t.y+=l.b.x-l.a.x;
return intersection(p,t,l.a,l.b);
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯