grread公司
你好我遵循这个代码,它的操作方式与fens选择模式相同,
除了两样东西,我都有,
(grread 5),5代表什么?(不懂文件)
什么使PT为零?(当它终止程序主循环时)
(defun VECTORS (/ PT PTLIST)
; Sequential choice of points
; by ElpanovEvgeniy
; (2005-10-19 17:59:01)
; (VECTORS)
(setq PTLIST (list
(setq PT (getpoint "\n Specify the first point"))
) ;_list
) ;_setq
(princ "\n Specify the following point")
(princ)
(while
(setq PT
(progn (while
(and (setq PT (grread 5))
(= (car PT) 5)
) ;_and
(redraw)
(mapcar
(function
(lambda (x1 x2)
(grdraw x1 x2 6 5)
) ;_lambda
) ;_function
(cons (cadr PT) PTLIST)
PTLIST
) ;_mapcar
) ;_while
(if (listp (cadr PT))
(cadr PT)
) ;_if
) ;_progn
) ;_setq
(setq PTLIST (cons PT PTLIST))
) ;_while
) ;_defun
谢谢 整数5对应于grread的allkeys参数,是位代码1(返回“拖动模式”坐标)和4(使用“curtype”参数中传递的值来控制光标显示)的组合。
grread函数通常不会返回nil;while循环通常在(car PT)不等于5时终止,即当用户输入不是鼠标移动时(例如2=键盘输入,3=左键单击等)。
你能举一个使用allkeys和curtype参数的例子吗?
当输入不是5时,内部while终止,但外部while仅在PT为零时终止,因此。。。PT如何得到零?
谢谢
S
我建议回顾一下这篇文章中发布的众多示例。
对于最外层while循环的测试表达式,符号PT被分配由以下表达式返回的值:
因此,如果grread返回的列表的第二项(cadr)是一个点(即,如果用户左键单击了一个点),则返回单击的点,否则返回nil,导致while循环终止。 除了曲线角之外,是否可以执行与代码相同的操作?
是的,您只需要计算一组向量来近似这里的弧快速示例。
谢谢李
我继续探索功能,
我写了一个测试程序,
用户要求定义水平边界线,
然后将点附着到光标并更改其颜色
根据其透视位置,在边界线下方或上方。
请提供更有效的方法来改进此代码。
2
谢谢
S
页:
[1]