求助!!lisp中已知三点求夹角怎么求
lisp吧
全部回复
仅看楼主
level 1
664077398 楼主
rt
2014年09月13日 11点09分 1
level 1
664077398 楼主
lz
写的是下面这样的,结果有时就 错误: 没有为参数定义函数: -4.44089e-016
求解!
(defun 3pangle(p1 p2 p3)
(acos (/ (+ (* (distance p1 p2) (distance p1 p2)) (* (distance p2 p3) (distance p2 p3)) (- (* (distance p1 p3) (distance p1 p3)))) 2.0 (distance p2 p3) (distance p2 p1)))
)
2014年09月13日 11点09分 2
你的余弦定理实现有点问题: (defun 3pangle (p1 p2 p3) (let ((a (distance p1 p2)) (b (distance p2 p3)) (c (distance p1 p3))) (acos (/ (- (+ (* a a) (* b b)) (* c c)) (* 2.0 a b)))))
2014年09月15日 01点09分
回复 狙击手考拉 :这个和我的那个有什么区别吗?
2014年09月16日 07点09分
回复 664077398 :哦,我的代码是在sbcl里运行的,有acos函数,CAD里貌似没有ACOS函数吧。从“没有为参数定义函数: -4.44089e-016”来看,应该是数据越界问题,能把你的acos函数代码和测试点的数据发上来吗?应该是无穷量越界没有处理
2014年09月16日 12点09分
level 7
我装了CAD2010试了下,确实是"no function definition: B"。那就实现一下acos吧
2014年09月17日 03点09分 4
我知道是哪里错了,我的ACOS函数是用ATAN写的,所以会有定义不到的地方。谢谢你了,还麻烦你下了一个CAD
2014年09月18日 14点09分
1