明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: tm20038175

【难题求解】点到三角形(内部及边界)的最短距离

  [复制链接]
发表于 2012-9-27 15:06:52 | 显示全部楼层
本帖最后由 vormittag 于 2012-9-27 19:41 编辑
tm20038175 发表于 2012-9-27 14:33
如果是有限的面,可能要难很多,即使点和三角形在同一平面上,如果点不在三角形内部,距离也不为0


也不难多少,只是麻烦一些。如果点在三角形平面的投影在三角形内,就是点到平面的距离;如果投影在三角形外,求投影点到三条边的距离,然后取投影点到三角形最短距离与点到平面的距离平方和开根就行了。
 楼主| 发表于 2012-9-27 19:21:23 来自手机 | 显示全部楼层
vormittag 发表于 2012-9-27 15:06
也不难多少,只是麻烦一些。如果点在三角形平面的投影在三角形内,就是点到平面的距离;如果投影在三角形 ...

分析的很到位呀,只是大师的程序没有给出求投影点,你也是高人一个,呵呵

点评

是你还没理解坐标转换投影之间的关系!投影点就是转换坐标后Z值为0的点!  发表于 2012-9-27 19:48
发表于 2012-9-27 19:46:58 | 显示全部楼层
tm20038175 发表于 2012-9-27 19:21
分析的很到位呀,只是大师的程序没有给出求投影点,你也是高人一个,呵呵
  1. (defun point (pt1 p1 p2 p3 / vec)
  2.    (setq vec (v^v (mapcar '- p1 p2) (mapcar '- p2 p3)))
  3.    (trans (mapcar '* '(1.0 1.0 0.0) (trans pt1 1 vec)) vec 1)
  4. )
这个求投影点
发表于 2012-9-27 21:21:19 | 显示全部楼层
搞错了,前面两段代码求距离的时候都忘了减去平面的高程了。
 楼主| 发表于 2012-9-27 21:27:47 来自手机 | 显示全部楼层
vormittag 发表于 2012-9-27 21:21
搞错了,前面两段代码求距离的时候都忘了减去平面的高程了。

呵呵,没事的,修改下就行了,真太感谢了。。。。
发表于 2012-11-3 21:02:57 | 显示全部楼层
强大,收藏!
发表于 2012-11-3 21:04:10 | 显示全部楼层
强大,收藏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-6 19:55 , Processed in 0.238540 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表