乐筑天下

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

[编程交流] 如何获得这些分数?

[复制链接]

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:08:47 | 显示全部楼层 |阅读模式
你好
 
希望有人能指导我如何获得这些点(p1,p2,p3,p4),如所附图像中所示的平行点,起点和终点代表矩形的中心线。
 
这就是我的开始。。。。。。
Wid参数表示矩形两侧的偏移距离
 
当做
 
迈克尔
110851hhhhhafamlkhhgga.jpg
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:15:04 | 显示全部楼层
使用极轴函数计算垂直于起点和终点的点。对于角度计算,使用从开始到结束的角度加上半pi和负半pi,以产生所需的合成角度。
 
希望这有帮助!
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:16:00 | 显示全部楼层
非常感谢。
回复

使用道具 举报

55

主题

243

帖子

188

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:20:08 | 显示全部楼层
也许是这样。。。。。。。
 
  1. (setq OffDist (getreal "\nOffset Distance...: "))
  2.    PtA   (getpoint     "\nPick point 1: ")
  3.    PtB   (getpoint PtA "\nPick point 2: ")
  4.    PtAng (angle PtA PtB)
  5.    Pt1 (polar PtA (+ PtAng (* 0.5 pi)) OffDist)
  6.    Pt2 (polar PtA (- PtAng (* 0.5 pi)) OffDist )
  7.    Pt3 (polar PtB (+ PtAng (* 0.5 pi)) OffDist)
  8.    Pt4 (polar PtB (- PtAng (* 0.5 pi)) OffDist )
  9. );setq
  10. (command "pline"  pt1 Pt3 "")
  11. (command "pline"  Pt2 pt4  "")
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:23:51 | 显示全部楼层
很无意义,但写起来很有趣
 
  1. (defun c:test ( / w p g a q l )
  2. (if
  3.    (and
  4.      (setq w (getdist "\nSpecify Width: "))
  5.      (setq w (/ w 2.) p (getpoint "\nSpecify First Point: "))   
  6.      (while (= 5 (car (setq g (grread 't 13 0)))) (redraw) (setq a (angle p (setq q (cadr g))))
  7.        (grvecs
  8.          (setq l
  9.            (list 256
  10.              (polar p (+ a (/ pi 2.)) w) (polar q (+ a (/ pi 2.)) w)
  11.              (polar p (- a (/ pi 2.)) w) (polar q (- a (/ pi 2.)) w)
  12.            )
  13.          )
  14.        )
  15.        l
  16.      )
  17.    )
  18.    (mapcar
  19.      (function
  20.        (lambda ( p q )
  21.          (entmakex (list (cons 0 "LINE") (cons 10 (trans p 1 0)) (cons 11 (trans q 1 0))))
  22.        )
  23.      )
  24.      (list (cadr  l) (cadddr l))
  25.      (list (caddr l) (car (cddddr l)))
  26.    )
  27. )
  28. (redraw) (princ)
  29. )
  30.    
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
310
发表于 2022-7-6 10:24:51 | 显示全部楼层
  1. (defun c:test (/ p1 p2 of)
  2. (setq p1 (getpoint "\nSpecify first point: ")
  3. p2 (getpoint p1 "\nSpecify second point: ")
  4.        of (getint "\nSpecify offset distance: "))
  5. (entmake
  6.    (list
  7.      (cons 0 "line")
  8.      (cons 10 (polar p1 (+ (angle p1 p2)(angtof "270.000000")) of))
  9.      (cons 11 (polar p2 (+ (angle p1 p2)(angtof "270.000000")) of))
  10.    )
  11. )
  12. (entmake
  13.    (list
  14.      (cons 0 "line")
  15.      (cons 10 (polar p1 (+ (angle p1 p2)(angtof "90.000000")) of))
  16.      (cons 11 (polar p2 (+ (angle p1 p2)(angtof "90.000000")) of))
  17.    )
  18. )
  19. (princ)
  20. )
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:29:59 | 显示全部楼层
谢谢大家,非常感谢你们的帮助。
 
我是在发布帮助后做的,它似乎与其他代码完全不同。
 
这样可以吗,或者我必须改变任何一个?
 
  1. (setq wid (getdist "\n Width of Distance :"))
  2. (setq c1 (getpoint "\n    Specify Center point 1 :"))
  3. (setq c2 (getpoint "\n    Specify Center point 2 :" c1))
  4. (setq ang (angle c1 c2))
  5. (setq p1 (polar c1 (+ pi (/ pi 2) ang) (/ wid 2)))     
  6. (setq p2 (polar p1 ang (distance c1 c2)))
  7. (setq p3 (polar c1 (+ (/ pi 2) ang)(/ wid 2)))
  8. (setq p4 (polar p3 ang (distance c1 c2)))

 
非常感谢。
回复

使用道具 举报

55

主题

243

帖子

188

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:33:07 | 显示全部楼层
看起来不错。。。。剥猫皮的方法有很多。
在代码运行时不要忘记将osmode设置为零,否则可能会发生错误。
旧金山
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:35:51 | 显示全部楼层
 
老实说,我会完全避免命令调用-输入像Lines/LwPolyline这样的对象很容易学习,不仅比命令调用快10倍,而且还避免了OSMODE的问题,因此在大多数情况下也避免了需要专用错误处理程序(重置系统变量)。
 
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:39:30 | 显示全部楼层
谢谢大家的关注,非常感谢你们的回复。
 
谢谢李,我同意你的观点,因为entmak'ing比Lisp中的任何命令都要好得多,我正在做
我尽量避免使用命令而不是od Entmakes函数。除此之外,它会给我更多的学习经验
处理Lisp的一般方法。
 
非常感谢。
 
迈克尔
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 08:03 , Processed in 2.555374 second(s), 76 queries .

© 2020-2025 乐筑天下

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