javascript - 查找段上最近的点
问题描述
我尝试在 Javascript 中找到一种从 3 个信息中获取段上最近点坐标的方法:段端点,假设 A = [x1,y1] 和 B = [x2,y2],点 C = [x ,y]。
如何执行此操作?
解决方案
制作矢量
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
相应地
推荐阅读
- python - 属性可以替换协议或超类中的属性吗?如果不能,为什么不能?
- html - 引导模式未以预期方式显示
- c# - 如何根据 ASCII 值描述配置文件中的字符?
- django - 我想在 django 管理面板中查看所有用户,我可以选择多个用户
- python - 在二维数组上使用 scipy 实现三次插值
- javascript - 如何在反应中创建动画平滑的粘性标题
- php - 导入帖子时的 Wordpress 自定义分类
- docker - 使用 docker compose 运行 Apache Skywalking 的问题
- linux - 请求 'gl >= 9.2.0' 但 GL 版本是 1.2 xorg-server
- amazon-web-services - 如何使用计划/延迟事件实现事件驱动架构?