明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3016|回复: 6

[提问] 如何获取三维点集中任意点的最小包围三角形

[复制链接]
发表于 2016-1-6 10:56 | 显示全部楼层 |阅读模式
很多三维点,如何在给定一个点的情况下,获得最小的包围三角形?没有的时候,获得最近点。

求个效率高的思路


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2016-1-6 12:19 | 显示全部楼层
这个几乎不是Lisp问题,而是数学问题,首先对于任意三维点的所谓“包围”,必须判断是否共面,共面才有包围一说。其次,即使是平面点,最小包围(面积)可能并不是接近的点,而是很远的,并且近乎在一条线上的三个点,在理论上每个点都可能是这个“最小包围”的一个交点,这样的情况下,遍历几乎是最直观的方法,而遍历的算法是很耗时的。
发表于 2016-1-6 13:14 | 显示全部楼层
三角网问题,查询某点有哪个三角形里
发表于 2016-1-6 14:35 来自手机 | 显示全部楼层
用 F 在屏幕边一点构造选择,第一个就是
 楼主| 发表于 2016-1-6 16:24 | 显示全部楼层
ll_j 发表于 2016-1-6 12:19
这个几乎不是Lisp问题,而是数学问题,首先对于任意三维点的所谓“包围”,必须判断是否共面,共面才有包围 ...

说简单点,条件是这么多三维点,求任意点高程有啥思路?
 楼主| 发表于 2016-1-6 16:25 | 显示全部楼层
zzyong00 发表于 2016-1-6 13:14
三角网问题,查询某点有哪个三角形里

如果把点生成三角网了。查询给定点在那个三角形内(平面上),有啥好思路?

点评

http://www.docin.com/p-447615274.html  发表于 2016-1-6 20:08
发表于 2016-1-7 17:25 | 显示全部楼层
一种简便方法
(defun c:tt (/ ss p pc h s)
  (if (setq p (getpoint "\nPoint: "))
    (progn
      (setq pc (getvar "viewctr")
            h  (getvar "viewsize")
      )
      (if (setq        ss (ssget "F"
                          (list p (mapcar '+ pc (list 0.0 (/ h 2) 0.0)))
                          '((8 . "三角形"))
                   )
          )
        (progn
          (setq s (ssadd))
          (sssetfirst nil (ssadd (ssname ss 0) s))
        )
      )
    )
  )
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 08:05 , Processed in 0.334200 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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