只需一步,快速开始
(defun c:tt () (setq p0 (getpoint "输入基点:")) (setq p1 (polar p0 0 100)) (setq p2 (polar p1 pi 100)));end defun
返回值(0.0 0.0 0.0) (100.0 0.0 0.0) (0.0 1.22465e-014 0.0)
为什么第三个返回值是这样的,最起码也不会有字母(1.22465e-014)啊。郁闷啊。
使用道具 举报
楼主的数学也不怎么样吧....有字母e并不影响程序的运行啊!
这个发现有点意思。。。
2楼和3楼的都误会楼主的意思了。。。
(0.0 0.0 0.0) (100.0 0.0 0.0) (0.0 1.22465e-014 0.0)
照道理,第三个返回值应该是(0.0 0.0 0.0) 才对。。。
可是却返回了(0.0 1.22465e-014 0.0)
这个就是CAD的BUG了
原因应该是出在polar函数的定义。。。
试着写一个polar函数。。。应该是精度问题
就明白为什么了。。。
看着不舒服,好端端的怎么有个这样的东西。不知道各位有没有遇到过,有什么解决的方法没有。
上次遇到个更奇怪的,(setq xx(/ 数值 2)),计算出来的结果也是错误的,查了好久才查出来,最后改成,(setq xx(* 数值 0.5))就行了,道理都是一样的,结果却不一样。
baizhan发表于2009-2-13 18:58:00 看着不舒服,好端端的怎么有个这样的东西。不知道各位有没有遇到过,有什么解决的方法没有。 上次遇到个更奇怪的,(setq xx(/ 数值 2)),计算出来的结
这个是这样子的没错。。。
当然你可以2改成2.0或者用(float 2)
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-7-29 16:45 , Processed in 0.187089 second(s), 25 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.