找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 640|回复: 2

[求助] [求助]:多边形与点定位

[复制链接]
发表于 2007-3-18 11:19:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
在任意多边形内,求出其中的任意一点坐标??发了几天了没人回复啊 很难吗?本来设计求出多边形的顶点坐标,再取两个奇数顶点的中点,但也不行哟 哪个高手有办法指点一下啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 488个

财富等级: 日进斗金

发表于 2007-3-21 22:47:38 | 显示全部楼层
论坛有的
其实简单的理解
对不是很特殊的多边形:
取任一边,作中点的法线,向左一点点,如果在外部,那么向右一点点,肯定在里面
如果都在外面,取1/3处,如果不行1/4处...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2007-3-21 23:18:59 | 显示全部楼层
[php]
;;取多边形里一点 取值往里偏0.01
(defun getpt_inbox(e / ang is j pt pt1)
  ;;先检验框子  闭合   有面积   不自相交  省略之.
  ;;假定已知 函数 (pt-in-box pt box) 测试pt在不在box里
  ;; http://www.xdcad.net/forum/showthread.php?s=&threadid=624276
  ;;检测8次,如果返回是nil 说明你的框子不适合本函数
  (setq j 2.)
  (while(and (null is)(< j 10))
     (setq pt1(vlax-curve-getpointatparam e (/ 1 j))
           ang(+ (/ pi 2)(angle '(0 0 0)(vlax-curve-getFirstDeriv e (/ 1 j))))
     )
     (setq is
        (or(pt-in-box(setq pt (polar pt1 ang 0.01)) e)
           (pt-in-box(setq pt (polar pt1(+ ang pi) 0.01)) e)
        )
     )
     (setq j(1+ j))
   )
   pt
)
[/php]

测试

  1. (defun c:test( / e pt)
  2.   (setvar "osmode" 0)
  3.   (if (setq e(car(entsel)))
  4.    (progn
  5.     (setq pt (getpt_inbox e))
  6.     (command "offset" "1" e pt "")
  7.     (command "change"(entlast)"""p""c""1""")
  8.   ))
  9. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 15:35 , Processed in 0.190143 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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