早教吧作业答案频道 -->其他-->
初学者,想知道下面的AutoLisp程序错在哪里(圆的渐开线)?怎么改(defunc:jkxg(/p0jrrmaxrdrphix0y0x1y1x2y2)(graphscr)(setqp0(getpoint"\n输入基圆的圆心:"))(setqjr(getdistp0"\n输入基圆的半径:"))(setq
题目详情
初学者,想知道下面的AutoLisp程序错在哪里(圆的渐开线)?怎么改
(defun c:jkxg(/ p0 jr rmax r dr phi x0 y0 x1 y1 x2 y2)
(graphscr)
(setq p0(getpoint"\n输入基圆的圆心:"))
(setq jr(getdist p0"\n输入基圆的半径:"))
(setq rmax(getdist "\n 输入渐开线的终止极径:"))
(command "circle"p0 r)
(setq dr(getdist "\n 输入极径增量:"))
(setq x0(car p0)y0(cadr p0))
(setq r jr)
(setq phi(sprt (- 1 (/ (* r r) (* jr jr))))
(setq x1(+ x0(* r(cos phi)))
(setq y1(+ y0(* r(sin phi)))
(while (< r rmax)
(setq r(+ r dr))
(setq x2(+ x0(* r(cos phi)))
(setq y2(+ y0(* r(sin phi)))
(command "line" ls (list x1 y1)(list x2 y2)"")
(setq ls (list x y))
(setq x1 x2 y1 y2)
编译的时候系统报列表错误.
(defun c:jkxg(/ p0 jr rmax r dr phi x0 y0 x1 y1 x2 y2)
(graphscr)
(setq p0(getpoint"\n输入基圆的圆心:"))
(setq jr(getdist p0"\n输入基圆的半径:"))
(setq rmax(getdist "\n 输入渐开线的终止极径:"))
(command "circle"p0 r)
(setq dr(getdist "\n 输入极径增量:"))
(setq x0(car p0)y0(cadr p0))
(setq r jr)
(setq phi(sprt (- 1 (/ (* r r) (* jr jr))))
(setq x1(+ x0(* r(cos phi)))
(setq y1(+ y0(* r(sin phi)))
(while (< r rmax)
(setq r(+ r dr))
(setq x2(+ x0(* r(cos phi)))
(setq y2(+ y0(* r(sin phi)))
(command "line" ls (list x1 y1)(list x2 y2)"")
(setq ls (list x y))
(setq x1 x2 y1 y2)
编译的时候系统报列表错误.
▼优质解答
答案和解析
(defun c:jkxg(/ p0 jr rmax r dr phi x0 y0 x1 y1 x2 y2)
(graphscr)
(setq p0(getpoint"\n输入基圆的圆心:"))
(setq jr(getdist p0"\n输入基圆的半径:"))
(setq rmax(getdist "\n 输入渐开线的终止极径:"))
(command "circle"p0 jr)
(setq dr(getdist "\n 输入极径增量:"))
(setq x0(car p0)y0(cadr p0))
(setq r jr)
(setq phi(sqrt (- 1 (/ (* r r) (* jr jr)))))
(setq x1(+ x0(* r(cos phi))))
(setq y1(+ y0(* r(sin phi))))
(while (< r rmax)
(setq r(+ r dr))
(setq x2(+ x0(* r(cos phi))))
(setq y2(+ y0(* r(sin phi))))
(command "line" ls (list x1 y1)(list x2 y2)"")
(setq ls (list x y))
(setq x1 x2 y1 y2)
)
)
;;少了好几个)肯定会提示出错的. 还有就是 sqrt 函数不是 sprt .改好了,加载是没问题,不过我随便输入数据画不出图形来,不知道是不是数据问题.
(graphscr)
(setq p0(getpoint"\n输入基圆的圆心:"))
(setq jr(getdist p0"\n输入基圆的半径:"))
(setq rmax(getdist "\n 输入渐开线的终止极径:"))
(command "circle"p0 jr)
(setq dr(getdist "\n 输入极径增量:"))
(setq x0(car p0)y0(cadr p0))
(setq r jr)
(setq phi(sqrt (- 1 (/ (* r r) (* jr jr)))))
(setq x1(+ x0(* r(cos phi))))
(setq y1(+ y0(* r(sin phi))))
(while (< r rmax)
(setq r(+ r dr))
(setq x2(+ x0(* r(cos phi))))
(setq y2(+ y0(* r(sin phi))))
(command "line" ls (list x1 y1)(list x2 y2)"")
(setq ls (list x y))
(setq x1 x2 y1 y2)
)
)
;;少了好几个)肯定会提示出错的. 还有就是 sqrt 函数不是 sprt .改好了,加载是没问题,不过我随便输入数据画不出图形来,不知道是不是数据问题.
看了 初学者,想知道下面的Auto...的网友还看了以下:
按要求变化句式1.你们撕拆我们的信件.改为被动句()2.我们的日记被你们偷看改为主动陈述句()仿写 2020-04-26 …
全站仪气象改正怎样输入全站仪气象改正怎样输入,平均海拔怎么不能改变,气压和平均海拔是什么关系。 2020-05-13 …
已知椭圆方程,设椭圆上一点怎么设椭圆方程为x2/16+y2/7=1,p在椭圆上,怎么设p点坐标 2020-05-15 …
已知椭圆方程,设椭圆上一点怎么设椭圆方程为x2/16+y2/7=1,p在椭圆上,怎么设p点坐标 2020-05-15 …
AI画了一个圆角矩形,可是想改变角度.圆角的角度在哪里变换?一个图是矩形的,那又怎么变成圆角?哪里 2020-05-17 …
质量为M的小球在水平面内做速率为V的逆时针圆周运动,试求小球在经过四分之一圆周,二分之一圆周,四分 2020-06-05 …
池塘里的荷叶又大又圆,改为比喻句怎么改啊 2020-06-08 …
solidworks视图里面圆看起来是多边形组成的怎么改成圆弧 2020-06-08 …
都说5米见方,是方形5*5米,如果是圆形的,怎么说呢?这个圆正好可以放在那样的方形里,怎么说、? 2020-06-15 …
诗之肥瘦中纪大学士改的怎么样?字少一些哦! 2020-06-18 …