乐筑天下

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

[编程交流] 双曲螺线

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:26:33 | 显示全部楼层 |阅读模式
大家好。我一直在寻找一个用于绘制hiperbolic螺旋的通用lisp例程,但找不到它。然而,Fuccaro有一个对数螺旋的脚本。由于我没有编程能力,可以重写脚本以使用以下等式吗
 
r=a/alpha
 
?
提前感谢
 
这是Fuccaro的对数螺线脚本(r=a*exp(b*alpha))
 
  1. ;|draw a logarithmic spiral
  2. Miklos Fuccaro     [email="mfuccaro@hotmail.com"]mfuccaro@hotmail.com[/email]
  3. ---------------------August 2006-------|;
  4. (defun c:logsp( / a b a1 ori osmode cmdecho)
  5. ;a,b=curve paramethers
  6. ;a1 =angular increment
  7. ;ori=origin; set to the origin of the UCS
  8. (princ "logarithmic spiral   R=a*exp(b*alpha)")
  9. (setq a (getreal "\na=")
  10.   b (getreal "\tb="))
  11. (setq a1 0.1 alpha (- a1) ori '(0 0 0))
  12. (if (and a b)
  13.    (progn
  14.      (setq osmode (getvar "osmode")
  15.       cmdecho (getvar "cmdecho"))
  16.      (setvar "osmode" 0)
  17.      (setvar "cmdecho" 0)
  18.      (command "pline")
  19.      (repeat 1000    ;nr of points
  20.   (command (polar ori (setq alpha (+ alpha a1)) (* a (exp (* b alpha)))))
  21.   )
  22.      (command "")
  23.      (setvar "osmode" osmode)
  24.      (setvar "cmdecho" cmdecho)
  25.      )
  26.    (princ "Invalid input!")
  27.    )
  28. (princ)
  29. )
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 09:36:51 | 显示全部楼层
您好,安德烈古斯塔沃,欢迎来到论坛!
 
这是您编写的执行的Lisp(r=a/alpha):
  1. (defun c:hipsp( / a a1 alpha osmode cmdecho)
  2. (setq a (getreal "\na= ")
  3.    a1 0.1
  4.    alpha 0
  5.    osmode (getvar "osmode")
  6.    cmdecho (getvar "cmdecho"))
  7. (mapcar 'setvar '("osmode" "cmdecho") '(0 0))
  8. (command "pline")
  9. (repeat 500
  10.    (command (polar '(0 0 0) (setq alpha (+ alpha a1)) (/ a alpha))))
  11. (command "")
  12. (mapcar 'setvar '("osmode" "cmdecho") (list osmode cmdecho))
  13. (princ)
  14. )
回复

使用道具 举报

0

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 09:41:50 | 显示全部楼层
你好,Fuccaro!
 
我看到了你关于对数螺旋的代码,我知道这是一个lisp代码,但因为我在这方面很新,我不太知道如何创建lisp文件来加载它(我见过其他lisp文件,它们看起来不同,这就是为什么我如此困惑)。
 
我需要代码来创建一个将放置在天线中的螺旋。
 
真的真的需要你的帮助!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:48:35 | 显示全部楼层
一些螺旋。。。
 
对数螺线
 
102634w2bbbjyee6cz2zy6.png
  1. (defun c:LogSpiral ( / a0 i v p a b l )
  2. (setq a0 0.0  ;; Start Angle
  3.        i  0.1  ;; Increment
  4.        v  500  ;; Vertices
  5. )
  6. (princ "\nLogarithmic Spiral: r=ae^(b0)")
  7. (if
  8.    (and
  9.      (setq a (getreal "\nParameter a="))
  10.      (setq b (getreal "\nParameter b="))
  11.      (setq p (getpoint "\nBase Point: "))
  12.    )
  13.    (entmakex
  14.      (append
  15.        (list
  16.          (cons 0 "LWPOLYLINE")
  17.          (cons 100 "AcDbEntity")
  18.          (cons 100 "AcDbPolyline")
  19.          (cons 90 v)
  20.        )
  21.        (repeat v
  22.          (setq l (cons (cons 10 (polar p (setq a0 (+ a0 i)) (* a (exp (* b a0))))) l))
  23.        )
  24.      )
  25.    )
  26. )
  27. (princ)
  28. )
双曲螺线
 
102635ncc4162y1v16yv67.png
  1. (defun c:HypSpiral ( / a0 i v a p l )
  2. (setq a0 0.0  ;; Start Angle
  3.        i  0.1  ;; Increment
  4.        v  500  ;; Vertices
  5. )
  6. (princ "\nHyperbolic Spiral: r=a/x")
  7. (if
  8.    (and
  9.      (setq a (getreal "\nParameter a="))
  10.      (setq p (getpoint "\nBase Point: "))
  11.    )
  12.    (entmakex
  13.      (append
  14.        (list
  15.          (cons 0 "LWPOLYLINE")
  16.          (cons 100 "AcDbEntity")
  17.          (cons 100 "AcDbPolyline")
  18.          (cons 90 v)
  19.        )
  20.        (repeat v
  21.          (setq l (cons (cons 10 (polar p (setq a0 (+ a0 i)) (/ a a0))) l))
  22.        )
  23.      )
  24.    )
  25. )
  26. (princ)
  27. )
Archimian螺旋
 
102636gk0t60g35aarn31c.png
费马螺线
 
102637wahc2r2iif10zjja.png
  1. (defun c:FermatSpiral ( / a0 i v p l )
  2. (setq a0 0.0  ;; Start Angle
  3.        i  0.1  ;; Increment
  4.        v  250  ;; Vertices
  5. )
  6. (princ "\nFermat Spiral: r=+-0^0.5")
  7. (if (setq p (getpoint "\nBase Point: "))
  8.    (entmakex
  9.      (append
  10.        (list
  11.          (cons 0 "LWPOLYLINE")
  12.          (cons 100 "AcDbEntity")
  13.          (cons 100 "AcDbPolyline")
  14.          (cons 90 (* 2 v))
  15.        )
  16.        (repeat v
  17.          (setq l
  18.            (append
  19.              (list (cons 10 (polar p (setq a0 (+ a0 i)) (- (sqrt a0)))))
  20.              l
  21.              (list (cons 10 (polar p (setq a0 (+ a0 i)) (sqrt a0))))
  22.            )
  23.          )
  24.        )
  25.      )
  26.    )
  27. )
  28. (princ)
  29. )
Lituus螺旋
 
102638njbna3xo9hny69e6.png
  1. (defun c:LituusSpiral ( / a0 i v p l )
  2. (setq a0 0.0  ;; Start Angle
  3.        i  0.1  ;; Increment
  4.        v  500  ;; Vertices
  5. )
  6. (princ "\nLituus Spiral: r=0^-0.5")
  7. (if (setq p (getpoint "\nBase Point: "))
  8.    (entmakex
  9.      (append
  10.        (list
  11.          (cons 0 "LWPOLYLINE")
  12.          (cons 100 "AcDbEntity")
  13.          (cons 100 "AcDbPolyline")
  14.          (cons 90 v)
  15.        )
  16.        (repeat v
  17.          (setq l (cons (cons 10 (polar p (setq a0 (+ a0 i)) (/ 1. (sqrt a0)))) l))
  18.        )
  19.      )
  20.    )
  21. )
  22. (princ)
  23. )
回复

使用道具 举报

6

主题

122

帖子

118

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 09:54:25 | 显示全部楼层
很酷的东西李!!
 
这是一个离题的快速问题,但在本文中有说明:
是什么导致代码符号(如括号)丢失其符号并显示其字母数字代码?
我以前遇到过这个,不想破译它。
关于如何解决和避免这个问题,有什么建议吗?
102640gt555tu6nglvt6t4.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:59:55 | 显示全部楼层
谢谢Greg
 
我相信html字符替换发生在旧线程被归档时,或者可能发生在服务器被更改时——这对David来说是个问题。快速查找和替换将解决此问题
回复

使用道具 举报

6

主题

122

帖子

118

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 10:03:13 | 显示全部楼层
谢谢你澄清,李。
有道理。
我将寻找一个参考网上显示什么html字符等于什么。
~格雷格
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:11:46 | 显示全部楼层
 
html字符表达式中的数字只是ASCII码,因此:
 
  1. 7

 
有很多ASCII引用,我主要使用这个。
 
有关HTML特殊字符和ASCII参考,请参阅W3 Web标准网站此处和此处。
 
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 10:18:01 | 显示全部楼层
谢谢李,你能早点来,为我的老套路贴出解药。祝您有个美好的一天!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:26:33 | 显示全部楼层
........
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 03:28 , Processed in 0.597133 second(s), 74 queries .

© 2020-2025 乐筑天下

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