奇怪的结果-无法解释
大家好,这是一个关于参数方程的游戏。。。试图获得托尔。。。结果对我来说很奇怪,我无法得到托尔的真实尺寸。。我不明白为什么。。。有什么帮助吗?对不起,我Lisp程序,看起来糟透了。。
(defun c:tor ( / R r x y z plist );torr
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun randnum (/)
(if (not seed)
(setq seed (getvar "DATE")))
(setq modulus 65536
multiplier 25173
increment 13849
seed (rem (+ (* multiplier seed) increment) modulus)
random (/ seed modulus)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun point (xplist)
(setq i 0)
(repeat (length xplist)
(entmakex
(list(cons 0 "POINT")
(cons 100"AcDbEntity")
(cons 670)
(cons 8"0")
(cons 100"AcDbPoint")
(cons 10 (nth i xplist))
(cons 62 256)
(cons 500)
)
)
(setq i (1+ i))
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq x 10000)
(if
(and
(setq R (getreal "\nR="))
(setq r (getreal "\n r="))
)
(progn
(setq plist nil)
(repeat x
(setq ux(* pi 2(randnum)))
(setq vx(* pi 2(randnum)))
(setq x (*(+ (* 5 R) (* r(cos vx)))(cos ux) ))
(setq y (*(+ (* 5 R) (* r(cos vx)))(sin ux ) ))
(setq z (* r (sin vx)))
(setq px (list x y z))
(setq plist (cons px plist))
)
))
(point plist)
(princ))
请与这个比较
(defun c:tor ( / R r x y z plist );torr
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun randnum (/)
(if (not seed)
(setq seed (getvar "DATE")))
(setq modulus 65536
multiplier 25173
increment 13849
seed (rem (+ (* multiplier seed) increment) modulus)
random (/ seed modulus)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun point (xplist)
(setq i 0)
(repeat (length xplist)
(entmakex
(list(cons 0 "POINT")
(cons 100"AcDbEntity")
(cons 670)
(cons 8"0")
(cons 100"AcDbPoint")
(cons 10 (nth i xplist))
(cons 62 256)
(cons 500)
)
)
(setq i (1+ i))
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq x 10000)
(if
(and
(setq R (getreal "\nR="))
(setq r (getreal "\n r="))
)
(progn
(setq plist nil)
(repeat x
(setq ux(* pi 2(randnum)))
(setq vx(* pi 2(randnum)))
(setq x (*(+ (* 1 R) (* r(cos vx)))(cos ux) ))
(setq y (*(+ (* 1 R) (* r(cos vx)))(sin ux ) ))
(setq z (* r (sin vx)))
(setq px (list x y z))
(setq plist (cons px plist))
)
))
(point plist)
(princ))
尝试不同的变量名。
AutoLisp不区分大小写。 如何通过这些点绘制网格(曲面)?三角化?或绘制实体。。。
页:
[1]