congcong 发表于 2003-12-19 13:43:00

8楼的兄台的程序是算出经过了几个象限,而我只要求程序能告诉我这段圆弧经过哪几个“象限点”即可,而不管它是经过哪几个象限。

Ea 发表于 2003-12-19 14:40:00

congcong发表于2003-12-19 13:43:00static/image/common/back.gif8楼的兄台的程序是算出经过了几个象限,而我只要求程序能告诉我这段圆弧经过哪几个“象限点”即可,而不管它是经过哪几个象限。

(defun test (ent / vla-obj cen rad plst i)
(setq        cen        (cdr (assoc 10 (entget ent)))
        rad        (cdr (assoc 40 (entget ent)))
        vla-obj        (vlax-ename->vla-object ent)
)
(setq i 0.)
(while (< i (* pi 2))
    (setq p (polar cen i rad))
    (if        (vlax-curve-getparamatpoint vla-obj p)
      (if plst
        (setq plst (append (list p) plst))
        (setq plst (list p))
      )
    )
    (setq i (+ i (/ pi 2)))
)
plst
)

sieben 发表于 2003-12-21 15:52:00

任意一段圆弧,怎么知道它经过哪几个象限点?
上面所写的程序我没有看,不过我想用vlax-curve-getstartparam和
vlax-curve-getendparam两个函数应该可以知道圆弧经过哪几个象限点。不妨一试

无痕 发表于 2003-12-21 19:13:00

是否也可以先求象限点,再看象限点是否在圆弧上?

sieben 发表于 2003-12-22 22:18:00

要判断点是否在圆弧上用vlax-curve-getdistatpoint or vlax-vurve-getparamatpoint 较稳定准确
页: 1 [2]
查看完整版本: 任意一段圆弧,怎么知道它经过哪几个象限点?请贴代码