|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 woaishuijia 于 2012-3-22 06:54 编辑
8 i: X. g+ I t1 w0 `* h1 h2 T/ G4 Y- C4 k4 C6 e
我想绘制一个沿着圆周移动的多边形,自己写了个lsp,但是运行就是没有出现效果.
1 f3 N& V( p0 S, u# P3 ]. @我写的lsp代码如下,运行结果如图所示,请问哪里出问题了?
1 d' h% Y! [* @- ;绘制沿圆周移动的多边形" C4 s* q' d/ F9 A% V4 c: Z
- ;basepoint 基准圆心
: ]) a \" ~# o' m - ;baseradius 基准圆半径4 s" y( A# T% Y7 E$ H0 A/ Z& `
- ;cenpoint 多边形内切圆圆心
% J; e7 }+ H( {" R/ j - ;pointx 多边形内切圆圆心x坐标. Y1 `1 B8 |' C r) W9 C
- ;pointy 多边形内切圆圆心y坐标
" Q4 u" l) y" _4 V4 z1 i - ;plgnum 多边形边数
: @! U) |. ]: f1 J8 o+ z h - ;plgradius 多边形内切圆半径
0 M8 a; N3 W* |$ s0 c6 U6 G - (defun c:movetocircle (/ basepoint baseradius cenpoint pointx pointy plgnum plgradius)2 E1 {0 e! O& w: O. D9 @
- (setq plgnum (getint "请输入绘制的正多边形边数:"))
l" w, r3 H3 U: R - (setq plgradius (getint "请输入绘制的正多边形内切圆半径:"))! I7 u& U/ |. v- n% n
- (setq basepoint (list 0 0))* q: S3 ~9 i, b, g
- (setq baseradius 4)
+ K$ { Q) p8 p# d - (command "circle" basepoint baseradius)
$ d! g0 E2 E# w7 o+ K9 U0 s - (setq pointx -4.0 step 0.2); O# L) H. v! A1 j* ^
- (while (< pointx 4.0)1 ?" v; ?0 E5 Q8 I; ?& _* ^
- (setq pointy (sqrt (- (* baseradius baseradius) (* pointx pointx))))
% `: l* ^8 d" r4 B2 e2 D2 w( j1 I - (setq cenpoint (list pointx pointy))4 {+ ^! X! P0 M0 o$ G. T/ ?
- (command "polygon" plgnum cenpoint "i" plgradius)5 A* Q* I9 X D5 i; d# Q9 s4 `
- (setq pointx (+ pointx step))
1 ~3 r8 k+ a7 @9 E2 K! q, c U - )
z9 e+ n* t0 o2 F - (prompt "draw polygon over!"): s, D2 t1 x- W* A) T
- )' W. }) m5 I; z3 H5 G3 ^+ }% u
复制代码 ! B; i1 K: E3 b. M
运行输入多边形边数:5
5 |: _1 y" L# J0 h! ~9 Z运行输入多边形内切圆半径:2
# l+ r& x4 V! X& p$ z) ? G E
7 |8 [' A% j# p9 h. ^ E( G' A效果图如下:* B* F; P+ Y2 Q, u6 I- B
4 ^% t! \6 B* g' P+ M
& u# r/ \' O5 _+ r我希望的效果是沿着外面的圆周绘出N个五边形,这个圆周就是这N个五边形内切圆的圆心的轨迹。请各位达人予以指点。 |
|