|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 woaishuijia 于 2012-3-22 06:54 编辑 ; |/ l2 x; P/ {! P7 q
$ O+ a4 p. R b: C% }0 @
我想绘制一个沿着圆周移动的多边形,自己写了个lsp,但是运行就是没有出现效果.
a2 `) S" u: N- K9 \5 m我写的lsp代码如下,运行结果如图所示,请问哪里出问题了?
. o( m m: b: ~8 ^) k4 K# o) S% o* _- ;绘制沿圆周移动的多边形
2 b5 k& a+ r. }* D+ f% d - ;basepoint 基准圆心
9 f7 E/ ]7 {% u - ;baseradius 基准圆半径3 H& q* |( U' h2 u" B: K
- ;cenpoint 多边形内切圆圆心
! M. x" q' P. F) D" j3 q - ;pointx 多边形内切圆圆心x坐标- y* h9 V; D/ w( g; n! A/ a" K
- ;pointy 多边形内切圆圆心y坐标
1 s( o5 |$ F, ]( B5 [$ V/ @( Z/ r - ;plgnum 多边形边数
h* g1 h6 f! {# _9 |0 D - ;plgradius 多边形内切圆半径
# d% z5 H5 O. { - (defun c:movetocircle (/ basepoint baseradius cenpoint pointx pointy plgnum plgradius); l4 d0 u* U% u2 G, F
- (setq plgnum (getint "请输入绘制的正多边形边数:"))
. b% X& H' O. Q6 b& t9 o) ?# x' [( f - (setq plgradius (getint "请输入绘制的正多边形内切圆半径:"))6 p T$ a4 \5 m, B% M
- (setq basepoint (list 0 0))$ Q2 ~5 u% z( ?# f" E4 B9 k
- (setq baseradius 4)$ \& X H* N6 o* [, _
- (command "circle" basepoint baseradius)5 p% C k1 Z' A4 H5 v2 N
- (setq pointx -4.0 step 0.2)
* O* n2 @: r q6 w4 b% v2 \ - (while (< pointx 4.0)
3 k. E0 \/ z- Y/ n$ m* B+ } - (setq pointy (sqrt (- (* baseradius baseradius) (* pointx pointx))))
1 B' a$ j; P$ t p# e* F0 z% J+ K - (setq cenpoint (list pointx pointy))
( D8 i" w! r# n! V% M: R5 Q - (command "polygon" plgnum cenpoint "i" plgradius)7 @. E+ C$ |5 E. ?7 W3 O& D: \8 q
- (setq pointx (+ pointx step))
U& e1 m2 q q - )
9 r& L7 d. w2 W! t1 @3 @ - (prompt "draw polygon over!")
# y1 O7 l& Z- T/ U1 H9 h! x - )4 R: b( d0 e4 R3 \: O+ m
复制代码 2 T0 w7 S7 ]" {/ l7 U
运行输入多边形边数:5
8 z' n, p5 |5 C0 E* O7 Z+ z运行输入多边形内切圆半径:29 d7 J* g, B) a3 p- H1 ^0 v
' l* q5 ^0 n; r1 y8 @# ]- O2 `/ \效果图如下:9 g8 \, R7 [0 _
0 N' d/ z: I7 G* H" w+ v: e
. W( t" E. r$ L我希望的效果是沿着外面的圆周绘出N个五边形,这个圆周就是这N个五边形内切圆的圆心的轨迹。请各位达人予以指点。 |
|