xstlf 发表于 2004-12-15 10:06:00

求助一新的LISP习题。相切直线不会画。

(defun C:hl ()<BR>       (setq o1 (getpoint "\n输入圆心:"))<BR>       (setq a1 (getreal "\n输入角度:"))<BR>       (setq r1 (getreal "\n输入第一圆面积半径:"))<BR>       (setq r2 (getreal "\n输入第二圆半径:"))<BR>       (setq d1 (getreal "\n输入二圆面积间距离:"))<BR>       (setq p1 (polar o1 (* (/ pi 180) a1) d1))<BR>       (setq p2 (polar o1 (/ pi 2) r1))<BR>       (setq p3 (polar o1 (/ pi -2) r1))<BR>       (setq p4 (polar p1 (/ pi 2) r2))<BR>       (setq p5 (polar p1 (/ pi -2) r2))       <BR>                               (command "circle" o1 r1 "")<BR>                               (command "circle" p1 r2 "")<BR>                               (command "line" p2 p4 "")<BR>                               (command "line" p3 p5 "")<BR>       (princ)<BR>       )


如上图所示,的二个直线若要它和二圆相切,怎么编函数呀?高手帮帮我新手呀,呵呵。先这儿谢了。

ZZXXQQ 发表于 2004-12-15 10:34:00

用不着函数。程序改后:


(defun C:hl ()<BR>       (setq o1 (getpoint "\n输入圆心:"))<BR>       (setq a1 (getreal "\n输入角度:"))<BR>       (setq r1 (getreal "\n输入第一圆面积半径:"))<BR>       (setq r2 (getreal "\n输入第二圆半径:"))<BR>       (setq d1 (getreal "\n输入二圆面积间距离:"))<BR>       (setq p1 (polar o1 (* (/ pi 180) a1) d1))<BR>       (setq p2 (polar o1 (/ pi 2) r1))<BR>       (setq p3 (polar o1 (/ pi -2) r1))<BR>       (setq p4 (polar p1 (/ pi 2) r2))<BR>       (setq p5 (polar p1 (/ pi -2) r2))       <BR>                               (command "circle" o1 r1 "")<BR>                               (command "circle" p1 r2 "")<BR>                               (command "line" "tan" p2 "tan" p4 "")<BR>                               (command "line" "tan" p3 "tan" p5 "")<BR>       (princ)<BR>       )

xstlf 发表于 2004-12-15 10:56:00

我一开始也是你这样写的呀,就是提示ten出错,倒,是tan呀,我搞错了。我再去试试。

xstlf 发表于 2004-12-15 11:02:00

可以了,是我自己把TAN错打成ten了,但这样角度太大的话也要出错,我知道怎么改了。呵呵。谢谢。

xstlf 发表于 2004-12-15 11:08:00

ZZXXQQ,能告诉我QQ吗?我常上宁波的。

xstlf 发表于 2004-12-15 14:13:00

我一用到选择集函数就要出错,这方面的实例手头上很少,有没有这方面的实例呀,发一个给我看看呀。文件太大的话,只发包含选择集函数的表达式就行了。

meflying 发表于 2004-12-15 18:54:00

多看看帮助文件中的介绍,也有一些例子的


这里有一个灵活应用的:


<A href="dispbbs.asp?BoardID=3&amp;ID=14363" target="_blank" >dispbbs.asp?BoardID=3&amp;ID=14363</A>


另,建议,LISP的讨论去LISP版块,这里是编程申请,是申请编写特定功能的程序

xstlf 发表于 2004-12-15 19:22:00

哦,谢谢管理员。
页: [1]
查看完整版本: 求助一新的LISP习题。相切直线不会画。