【算法精英们】一个分割区域的几何算法,请数学家和大神们讨论下
本帖最后由 santalin 于 2018-10-5 12:39 编辑用两条多段线切割封闭多段线,求两条封闭多段线间的阴影区域面积,如下图,求算法和代码,大神们看看啊
;选择封闭多段线
(princ "\n 选择封闭多段线:")
(setq epl (ssname (ssget) 0))
(princ "\n 选择两根要用来切割的多段线:")
(setq ss (ssget))
(setq ecut1 (ssname ss 0) ecut2 (ssname ss 1))
(princ "\n 求得封闭多段线切割后的阴影部分面积之和=")
(princ (pl_cutarea epl ecut1 ecut2))
;请大神们帮忙看看这个(pl_cutarea epl ecut1 ecut2)函数算法该怎么写
(defun pl_cutarea (epl ecut1 ecut2 / ret)
......
ret
)
面域相交就可以了 自贡黄明儒 发表于 2018-10-5 12:53
面域相交就可以了
面域相交是个好主意,不过LISP的函数是用哪个接口 是不是生成两个面域,用CAD的布尔交集生成新面域,求面域面积,应该是个好主意 本帖最后由 santalin 于 2018-10-6 08:18 编辑
自贡黄明儒 发表于 2018-10-5 12:53
面域相交就可以了
面域可以实现,只是在批量执行过程中,生成面域命令窗口会输出很多提示,有点烦,(setvar "cmdecho" 0)也没用,像MATCHPROP命令也是如此,有没有什么办法让输出窗口不输出这些信息
如果有数学上的的算法自己写个函数比用CAD自带的命令效率更高,又不会出现很多烦人的提示,影响程序输出内容,大神们有兴趣可以考虑下算法 lisp不好实现,怎也也得借助实体图元计算,纯数学算法不好搞呀 可以先转化为求一条多段线与封闭图形的面积,剩下的事就是分别求两条多段线与封闭图形形成的面积,最后求差值。
好代码,学习一下喽
页:
[1]