(XDGE几何库应用)三点获取圆弧信息
本帖最后由 newer 于 2025-1-23 18:08 编辑XDRX API 有个函数 xdrx-geom-3p2arc ,根据三点,获取圆弧信息
如果3点组成逆时针弧
(xdrx-geom-3p2arc p2 pin p1)
(T (3637.41 842.633 0.0) 836.058 0.334996 2.67516)
如果3点组成顺时针弧
(xdrx-geom-3p2arc p1 pin p2)
(nil (3637.41 842.633 0.0) 836.058 0.334996 2.67516)
获取的圆弧信息数据是按逆时针弧返回的,第一个T或者NIL反映时针方向
下面用XDGE几何库,来模拟实现上面函数xdrx-geom-3p2arc
(defun xd::geom:3p2arc (pstart pmid pend / garc sang eang #center #radius #isclockwise)
(if (setq garc (xdge::constructor "kCircArc2d" pstart pmid pend))
(progn
(xdrx-getpropertyvalue
garc"center" "radius""isclockwise")
(setq sang (xdrx-vector-angleonplane
(xdrx-vector-normalize
(mapcar '-
pstart
(list (car #center) (cadr #center) 0.0)
)
)
'(0 0 1.0)
)
eang (xdrx-vector-angleonplane
(xdrx-vector-normalize
(mapcar '-
pend
(list (car #center) (cadr #center) 0.0)
)
)
'(0 0 1.0)
)
)
(if #isclockwise
(list nil #center #radius eang sang)
(list t #center #radius sang eang)
)
)
)
)
Command: (XD::GEOM:3P2ARC p1 pin p2)
(nil (3637.41 842.633) 836.058 0.334996 2.67516)
Command: (XD::GEOM:3P2ARC p2 pin p1)
(T (3637.41 842.633) 836.058 0.334996 2.67516)
页:
[1]