;;求直线与圆的交点
(defun GetIntersOfLine&Circle
(CEN RAD LP1 LP2 / ANG AN2 PT DI1 DI P1 P2)
(setq ANG (angle LP1 LP2)
AN2 (+ ANG (/ PI 2))
PT (inters LP1 LP2 CEN (polar CEN AN2 1) nil)
DI1 (distance CEN PT)
)
(cond
((< DI1 RAD);;2个交点
(setq DI (sqrt (- (* RAD RAD) (* DI1 DI1)))
P1 (polar PT ANG DI)
P2 (polar PT (+ ANG PI) DI)
)
(list P1 P2)
)
((equal DI1 RAD 1E-5);;1个交点
PT
)
(T nil);;0个交点
)
)