乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 14|回复: 2

[编程交流] 奇怪的结果-无法解释

[复制链接]
uli

4

主题

7

帖子

3

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 06:56:46 | 显示全部楼层 |阅读模式
大家好,
这是一个关于参数方程的游戏。。。试图获得托尔。。。结果对我来说很奇怪,我无法得到托尔的真实尺寸。。我不明白为什么。。。有什么帮助吗?对不起,我Lisp程序,看起来糟透了。。
 
  1. (defun c:tor ( / R r x y z plist );torr
  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. (defun randnum (/  )
  4. (if (not seed)
  5.      (setq seed (getvar "DATE")))
  6. (setq modulus    65536
  7.     multiplier    25173
  8.      increment    13849
  9.        seed       (rem (+ (* multiplier seed) increment) modulus)
  10.        random     (/ seed modulus)))
  11. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  12. (defun point (xplist)
  13. (setq i 0)  
  14. (repeat (length xplist)  
  15. (entmakex
  16.      (list(cons 0 "POINT")
  17.       (cons 100  "AcDbEntity")
  18.       (cons 67  0)
  19.       (cons 8  "0")
  20.       (cons 100  "AcDbPoint")
  21.       (cons 10 (nth i xplist))
  22.       (cons 62 256)
  23.       (cons 50  0)
  24.      )
  25. )
  26. (setq i (1+ i))
  27. ))
  28. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  29. (setq x 10000)
  30. (if
  31.    (and
  32.      (setq R (getreal "\n  R="))
  33.      (setq r (getreal "\n r="))
  34.    )
  35. (progn
  36.    (setq plist nil)
  37.    (repeat x
  38.          (setq ux  (* pi 2  (randnum)))
  39.          (setq vx  (* pi 2  (randnum)))
  40.      (setq x (*  (+ (* 5 R) (* r  (cos vx)))  (cos ux)    ))
  41.          (setq y (*  (+ (* 5 R) (* r  (cos vx)))  (sin ux )   ))
  42.          (setq z (* r (sin vx)))
  43.          (setq px (list x y z))                     
  44.      (setq plist (cons px plist))
  45.    )
  46.    ))
  47. (point plist)  
  48. (princ))

请与这个比较
 
  1. (defun c:tor ( / R r x y z plist );torr
  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. (defun randnum (/  )
  4. (if (not seed)
  5.      (setq seed (getvar "DATE")))
  6. (setq modulus    65536
  7.     multiplier    25173
  8.      increment    13849
  9.        seed       (rem (+ (* multiplier seed) increment) modulus)
  10.        random     (/ seed modulus)))
  11. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  12. (defun point (xplist)
  13. (setq i 0)  
  14. (repeat (length xplist)  
  15. (entmakex
  16.      (list(cons 0 "POINT")
  17.       (cons 100  "AcDbEntity")
  18.       (cons 67  0)
  19.       (cons 8  "0")
  20.       (cons 100  "AcDbPoint")
  21.       (cons 10 (nth i xplist))
  22.       (cons 62 256)
  23.       (cons 50  0)
  24.      )
  25. )
  26. (setq i (1+ i))
  27. ))
  28. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  29. (setq x 10000)
  30. (if
  31.    (and
  32.      (setq R (getreal "\n  R="))
  33.      (setq r (getreal "\n r="))
  34.    )
  35. (progn
  36.    (setq plist nil)
  37.    (repeat x
  38.          (setq ux  (* pi 2  (randnum)))
  39.          (setq vx  (* pi 2  (randnum)))
  40.      (setq x (*  (+ (* 1 R) (* r  (cos vx)))  (cos ux)    ))
  41.          (setq y (*  (+ (* 1 R) (* r  (cos vx)))  (sin ux )   ))
  42.          (setq z (* r (sin vx)))
  43.          (setq px (list x y z))                     
  44.      (setq plist (cons px plist))
  45.    )
  46.    ))
  47. (point plist)  
  48. (princ))
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-6 07:28:04 | 显示全部楼层
尝试不同的变量名。
AutoLisp不区分大小写。
回复

使用道具 举报

uli

4

主题

7

帖子

3

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 08:00:50 | 显示全部楼层
如何通过这些点绘制网格(曲面)?三角化?或绘制实体。。。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 10:32 , Processed in 0.389516 second(s), 69 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表