我有一个简单的lisp程序,可以创建一个星形。我从Michel Trottier那里借的。出于某种原因,当它到达这一行==>(inters pt4 pt1 pt3 pt5)时,它返回一条消息,说==>错误:参数类型错误。据我所知,代码中的一切似乎都很好。
你觉得有什么问题吗?
- ;; by Michel Trottier
- ;;
- (defun c:star (/ osn pt rd pt1 pt2 pt3 pt4 pt5 pt1a pt2a pt3a pt4a pt5a)
- (setvar "CMDECHO" 0)
- (setvar "OSMODE" 0)
- (setq osn (getvar "OSMODE")
- pt (getpoint "\nGive the center of the star")
- rd (getdist "\nRadius? : ")
- pt1 (polar pt (dtr 90) rd)
- pt2 (polar pt (dtr 162) rd)
- pt3 (polar pt (dtr 234) rd)
- pt4 (polar pt (dtr 306) rd)
- pt5 (polar pt (dtr 18) rd)
- pt1a (inters pt1 pt3 pt2 pt5)
- pt2a (inters pt2 pt4 pt1 pt3))
- pt3a (inters pt3 pt5 pt2 pt4))
- pt4a (inters pt4 pt1 pt3 pt5))
- pt5a (inters pt4 pt1 pt2 pt5))
- )
- (defun dtr (x)
- (/ (* x pi) 180.0)
- )
- (command "_PLINE" pt1 pt1a pt2 pt2a pt3 pt3a pt4 pt4a pt5 pt5a "C")
- (setvar "OSMODE" osn)
- (princ)
- )
|