为了账号安全,请及时绑定邮箱和手机立即绑定

查找段上最近的点

查找段上最近的点

红颜莎娜 2022-07-08 16:01:23
我尝试在 Javascript 中找到一种从 3 个信息中获取段上最近点坐标的方法:段端点,假设 A = [x1,y1] 和 B = [x2,y2],点 C = [x ,y]。如何执行此操作?
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

制作矢量


AB = (B.X-A.X, B.Y-A.Y)

AC = (C.X-A.X, C.Y-A.Y)

然后计算线上的正交C投影AB:


AD = AB * (AB.dot.AC) / (AB.dot.AB);

在坐标中:


CF = ((B.X-A.X)*(C.X-A.X)+(B.Y-A.Y)*(C.Y-A.Y)) / ((B.X-A.X)^2+(B.Y-A.Y)^2)

D.X=A.X+(B.X-A.X)*CF

D.Y=A.Y+(B.Y-A.Y)*CF

请注意,对于 caseCF<0或CF>1投影点D位于AB段之外,因此最近的 pointon 段是A或B相应地


查看完整回答
反对 回复 2022-07-08
?
SMILET

TA贡献1796条经验 获得超4个赞

您将需要https://en.wikipedia.org/wiki/Analytic_geometry的知识

它将允许您获得几个方程式,您需要解决这些方程式才能获得这一点。这是高级高中数学。

在您的情况下,您需要从两点创建线方程https://mathinsight.org/lines_algebraic_geometry_refresher

然后你需要计算与前一行成直角的向量https://www.mathsisfun.com/algebra/vectors-dot-product.html (然后找到穿过点C并具有你的方向的线的方程向量)

然后你需要找到这两条线的交点 https://brilliant.org/wiki/linear-equations-intersection-of-lines/


查看完整回答
反对 回复 2022-07-08
  • 2 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号