李^^^(链接非常有用)
啊,我刚刚写了一个(对我来说)更简单的共线,但我不确定它是否正确。请推荐帮助我
- (defun ST:Geo-Linear (p1 p2 p3 fuzz)
- ((lambda ( a b )
- (or
- (equal (abs (- a b)) pi fuzz)
- (equal (abs (- a b)) 0 fuzz)
- )
- )
- (angle p1 p2)(angle p1 p3)
- ))
- (defun ST:Geo-ListLinear (lst / tmp)
- (setq i 2)
- (cond ((and (= (length lst) 3)(ST:Geo-Linear(car lst)(cadr lst)(caddr lst) 1e-)(setq tmp T))
- (T (while (and (< i (1- (length lst)))
- (setq tmp (ST:Geo-Linear (nth 0 lst)(nth 1 lst) (nth (setq i (1+ i)) lst) 1e-))
- tmp
- )
- )
- )
- tmp
- )
当它发现三点不“一致”时,原因函数将立即停止,所以我认为它会更快一些 |