cie0588 发表于 2016-1-6 10:56:43

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

很多三维点,如何在给定一个点的情况下,获得最小的包围三角形?没有的时候,获得最近点。

求个效率高的思路


ll_j 发表于 2016-1-6 12:19:07

这个几乎不是Lisp问题,而是数学问题,首先对于任意三维点的所谓“包围”,必须判断是否共面,共面才有包围一说。其次,即使是平面点,最小包围(面积)可能并不是接近的点,而是很远的,并且近乎在一条线上的三个点,在理论上每个点都可能是这个“最小包围”的一个交点,这样的情况下,遍历几乎是最直观的方法,而遍历的算法是很耗时的。

zzyong00 发表于 2016-1-6 13:14:38

三角网问题,查询某点有哪个三角形里

ivde 发表于 2016-1-6 14:35:35

用 F 在屏幕边一点构造选择,第一个就是

cie0588 发表于 2016-1-6 16:24:53

ll_j 发表于 2016-1-6 12:19 static/image/common/back.gif
这个几乎不是Lisp问题,而是数学问题,首先对于任意三维点的所谓“包围”,必须判断是否共面,共面才有包围 ...

说简单点,条件是这么多三维点,求任意点高程有啥思路?

cie0588 发表于 2016-1-6 16:25:41

zzyong00 发表于 2016-1-6 13:14 static/image/common/back.gif
三角网问题,查询某点有哪个三角形里

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

ivde 发表于 2016-1-7 17:25:49

一种简便方法
(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)
)
页: [1]
查看完整版本: 如何获取三维点集中任意点的最小包围三角形