李有一些很好的数学子函数。
在交叉口类别中查找以下内容:
- ;; Line-Circle Intersection - Lee Mac
- ;; Returns the point(s) of intersection between an infinite line defined by
- ;; points p,q and circle with centre c and radius r
- (defun LM:inters-line-circle ( p q c r / a d n s )
- (setq n (mapcar '- q p)
- p (trans p 0 n)
- c (trans c 0 n)
- a (list (car p) (cadr p) (caddr c))
- )
- (cond
- ( (equal r (setq d (distance c a)))
- (list (trans a n 0))
- )
- ( (< d r)
- (setq s (sqrt (- (* r r) (* d d))))
- (list
- (trans (list (car p) (cadr p) (- (caddr c) s)) n 0)
- (trans (list (car p) (cadr p) (+ (caddr c) s)) n 0)
- )
- )
- )
- )
数学家太棒了! |