乐筑天下

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

[编程交流] grread公司

[复制链接]

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 19:39:55 | 显示全部楼层 |阅读模式
你好
 
我遵循这个代码,它的操作方式与fens选择模式相同,
 
除了两样东西,我都有,
 
(grread 5),5代表什么?(不懂文件)
什么使PT为零?(当它终止程序主循环时)
 
  1. (defun VECTORS (/ PT PTLIST)
  2. ; Sequential choice of points
  3. ; by ElpanovEvgeniy
  4. ; (2005-10-19 17:59:01)
  5. ; (VECTORS)
  6. (setq PTLIST (list
  7.                 (setq PT (getpoint "\n Specify the first point  "))
  8.               ) ;_  list
  9. ) ;_  setq
  10. (princ "\n Specify the following point  ")
  11. (princ)
  12. (while
  13.    (setq PT
  14.           (progn (while
  15.                    (and (setq PT (grread 5))
  16.                         (= (car PT) 5)
  17.                    ) ;_  and
  18.                     (redraw)
  19.                     (mapcar
  20.                       (function
  21.                         (lambda (x1 x2)
  22.                           (grdraw x1 x2 6 5)
  23.                         ) ;_  lambda
  24.                       ) ;_  function
  25.                       (cons (cadr PT) PTLIST)
  26.                       PTLIST
  27.                     ) ;_  mapcar
  28.                  ) ;_  while
  29.                  (if (listp (cadr PT))
  30.                    (cadr PT)
  31.                  ) ;_  if
  32.           ) ;_  progn
  33.    ) ;_  setq
  34.     (setq PTLIST (cons PT PTLIST))
  35. ) ;_  while
  36. ) ;_  defun

 
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:52:15 | 显示全部楼层
整数5对应于grread的allkeys参数,是位代码1(返回“拖动模式”坐标)和4(使用“curtype”参数中传递的值来控制光标显示)的组合。
 
 
grread函数通常不会返回nil;while循环通常在(car PT)不等于5时终止,即当用户输入不是鼠标移动时(例如2=键盘输入,3=左键单击等)。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 20:06:36 | 显示全部楼层
 
你能举一个使用allkeys和curtype参数的例子吗?
 
 
当输入不是5时,内部while终止,但外部while仅在PT为零时终止,因此。。。PT如何得到零?
 
谢谢
S
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:10:52 | 显示全部楼层
 
我建议回顾一下这篇文章中发布的众多示例。
 
 
对于最外层while循环的测试表达式,符号PT被分配由以下表达式返回的值:
因此,如果grread返回的列表的第二项(cadr)是一个点(即,如果用户左键单击了一个点),则返回单击的点,否则返回nil,导致while循环终止。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 20:29:23 | 显示全部楼层
除了曲线角之外,是否可以执行与代码相同的操作?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:33:35 | 显示全部楼层
 
是的,您只需要计算一组向量来近似这里的弧快速示例。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 20:46:04 | 显示全部楼层
 
谢谢李
 
我继续探索功能,
我写了一个测试程序,
 
用户要求定义水平边界线,
然后将点附着到光标并更改其颜色
根据其透视位置,在边界线下方或上方。
 
请提供更有效的方法来改进此代码。
 
 
  1. 2

 
 
谢谢
S
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 00:44 , Processed in 0.420182 second(s), 66 queries .

© 2020-2025 乐筑天下

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