![]() |
请问,椭球程序错在哪里?
请问,椭球程序错在哪里?
www.dimcax.com 请问,椭球程序错在哪里? 图片: ;椭球 (defun c:tq() (setq pt0 (getpoint "请输入基点: ")) (setq a (getreal "请输入长轴半径a: ")) (setq b (getreal "请输入短轴半径b: ")) (setq c (getreal "请输入纵轴半径c: ")) (setq ang -90) (while (<= ang 90) (setq ang1(/ (* pi ang) 180)) (setq a1 (+ (car pt0) (* a (cos ang1) )) ) (setq pt0y (cadr pt0)) (setq c0 (+ (caddr pt0)(* c (sin ang1) )) ) (setq b1 (* b (cos ang1)) ) (setq ang (+ 1 ang)) (setq pt1 (list -a1 pt0y c0)) (setq pt2 (list a1 pt0y c0)) (command "ellipse" pt1 pt2 b1) ) ) 看看标点符号之类的 图片: 错在ang改成-89就对了. (defun c:tq() (setq pt0 (getpoint "请输入基点: ")) (setq a (getreal "请输入长轴半径x方向a: ")) (setq b (getreal "请输入短轴半径y方向b: ")) (setq c (getreal "请输入纵轴半径z方向c: ")) (setq ang -89) ;错在-90 应为-89 (while (<= ang 89) (setq ang1 (/ (* pi ang) 180)) (setq a1 (+ (car pt0) (* a (cos ang1) )) ) (setq pt0y (cadr pt0)) (setq c0 (+ (caddr pt0)(* c (sin ang1) )) ) (setq b1 (* b (cos ang1)) ) (setq ang (+ 1 ang)) (setq pt1 (list (* a1 -1.0) pt0y c0)) ;错-a1 应为(* a1 -1.0) (setq pt2 (list a1 pt0y c0)) (command "ellipse" pt1 pt2 b1) ) ) gbg 谢谢老顾了,我刚开始学习lisp,掌握的知识很少的,感谢你的讲解! |
所有的时间均为北京时间。 现在的时间是 06:29 AM. |