只需一步,快速开始
问题是这样:
能否在多边形内部产生内点,不管多边形是凹还是凸,都能产生的这个点在多边形内!因为我有一个CAD图形涉及到
很多多边形需要 内部标号的问题,所以想起来没有好的简单的方法!
虽然网站里面有人发了此话题,但是未给出源代码和解答思路,我自己尝试了用面域中心和一些方法都不行,
所以看大家能否想出一个解答方法,最好是有理论依据的,比较好的解法!
使用道具 举报
呵呵,我也不知道,但是帮你顶一下
你可以看看我这个程序,可能对你有用,思路是先选取对象,然后取对象的左下角点和右上角点,通过这两点就可以求出中心点,一般都是这个图形的一个内部点,至少我还没有发现不是的情况,代码如下:
;选择1往外偏移(对象无内外之分的也选此项)/选择2往内偏移 ;命令为qq ;选择1往外偏移(对象无内外之分的也选此项)/选择2往内偏移 ;命令为qq (defun c:qq (/ ss JL FX n nw col cs jll) (princ "\n★多对象偏移★\n选择偏移对象...") (and (setq ss (ssget)) (> (setq jl (getdist "\n输入偏移距离:")) 0) (> (setq cs (getint"\n请输入偏移次数<黪认为1>:")))) (initget "1 2") (setq nw (getkword"\n 请选择偏移方式:1-往外/2-往内:")) (setq col (getint"\n请选择偏移颜色号:1红-2黄-3绿-4青-5蓝-6紫-7白:")) (if (not cs ) (setq cs 1)) (setq n 0 ) (cond ((= nw "1") (setq fx (getpoint "\n请点选偏移的外侧:")) (repeat (sslength ss) (setq jll jl) (setq dx (ssname ss n)) (repeat cs (command "offset" jll dx fx "") (vl-cmdf "chprop" (entlast) "" "c" col "") (setq jll (+ jll jl))) (setq n (1+ n)) )) ((= nw "2") (repeat (sslength ss) (setq jll jl) (setq dx (ssname ss n)) (setq p1 (car(acet-ent-geomextents dx)) p1 (list (car p1) (cadr p1)) p2 (cadr(acet-ent-geomextents dx)) p2 (list (car p2) (cadr p2));看这一句 fx (polar p1 (angle p1 p2) (/ (distance p1 p2) 2)));还有这一句 (repeat cs (command "offset" jll dx fx "") (vl-cmdf "chprop" (entlast) "" "c" col "") (setq jll (+ jll jl))) (setq n (1+ n)) )) ) (princ "\n★成功完成!!" ) (princ))
这是从网站下载的取得实体的面积或质量的中点的程序,我没用过,供你参考!
您需要 登录 才可以下载或查看,没有账号?注册
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-5-29 04:45 , Processed in 1.303390 second(s), 26 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.