429014673 发表于 2010-12-29 15:01:23

请 [院长] 看下这个程序,有小小出入,不知为什么

本帖最后由 429014673 于 2010-12-30 16:50 编辑




请大家帮忙看下下面的程序有什么问题

1)图三是编程用的,我用这个命令画图一时,但不知为什么图二的尺寸14和图一的12对不上.
2)学院派的这两行看不明呀
aaa (/ (+ (* a a) (* b b) (* c c -1.)) (* 2. a b))
aa(XYP-TF-ACOS aaa)



(defun c:4L ( / p1 a d e c b p2 aaa aa dd p4 bbb bb cc p3)
(setq
p1(getpoint "\n四边形初始位置:")
a   (getreal "\n四边形一条边: ")
d   (getreal "\n四边形二条边: ")
e   (getreal "\n四边形三条边: ")
c   (getreal "\n四边形四条边: ")
b   (getreal "\n四边形左对角线: ")
p2(polar p1 0 a)
aaa (/ (+ (* a a) (* b b) (* c c -1.)) (* 2. a b))
aa(XYP-TF-ACOS aaa)
dd(- pi aa)
p4(polar p2 dd b)
bbb (/ (+ (* b b) (* e e) (* d d -1.)) (* 2. b e))
bb(XYP-TF-ACOS bbb)
cc(- pi (+ aa bb))
p3(polar p2 cc d)
)
(command "pline" "non" p1 "non" p2 "non" p3 "non" p4 "c")
(princ)
)

429014673 发表于 2010-12-29 18:13:10

各位老大帮忙呀

crazylsp 发表于 2010-12-29 20:02:15

自己输对角线多麻烦啊,还要先算

429014673 发表于 2010-12-29 20:56:34

回复 crazylsp 的帖子

我也没有办法,由于要画这样的四边形多了,想编一个,但不知在哪里出现了问题,可以帮我看下吗?

429014673 发表于 2010-12-30 11:21:47

danxingpen 发表于 2010-12-30 13:44:34

因为你缺少条件,根据你提供的四边一个对角线,根本就不足以画出唯一的四边形!

429014673 发表于 2010-12-30 16:46:22

回复 danxingpen 的帖子

两个三角形组成的四边形怎么画不出来呀???/???

xyp1964 发表于 2010-12-30 21:06:29

(defun c:4L (/ p1 a d e c b p2 aa p4 bb p3)
(setq        p1 (getpoint "\n四边形初始位置: ")
        a(getreal "\n四边形一条边: ")
        d(getreal "\n四边形二条边: ")
        e(getreal "\n四边形三条边: ")
        c(getreal "\n四边形四条边: ")
        b(getreal "\n四边形左对角线: ")
        p2 (polar p1 0 a)
        aa (xyp-TF-yxdl-3Side a b c)
        p4 (polar p2 (- pi aa) b)
        bb (xyp-TF-yxdl-3Side b d e)
        p3 (polar p2 (- pi (+ aa bb)) d)
)
(command "pline" "non" p1 "non" p2 "non" p3 "non" p4 "c")
(princ)
)

xyp1964 发表于 2010-12-30 21:28:11

(defun c:tt (/ ilst l1 l2)
(cmdla0)
(defun main-pro (/ p1 p2 s1)
    (while (setq p1 (getpoint "\n四边形初始位置<退出>: "))
      (setq p2 (polar p1 0 a))
      (if (setq s1 (XYP-ACUTE-2PT2SIDE P1 P2 c b))
(XYP-ACUTE-2PT2SIDE (cadr s1) P2 e d)
      )
    )
)
(xyp-initSet '(a d e c b) '(30. 40. 40. 30. 50.))
(setq ilst '(("a" "第一条边长" "real" "8")
      ("d" "第二条边长" "real" "8")
      ("e" "第三条边长" "real" "8")
      ("c" "第四条边长" "real" "8")
      ("b" "左对角线长" "real" "8")
      (nil nil "spacer;")
       )
)
(if (= (xyp-Dcl-Init Ilst "【测试】" t) 1)
    (main-pro)
)
(cmdla1)
)

429014673 发表于 2010-12-31 21:03:12

本帖最后由 429014673 于 2010-12-31 21:09 编辑

xyp1964 发表于 2010-12-30 21:06 http://bbs.mjtd.com/static/image/common/back.gif
(defun c:4L (/ p1 a d e c b p2 aa p4 bb p3)
(setq      p1 (getpoint "\n四边形初始位置: ")
      a(getrea ...

院长,你的程序我试了下,但提示有问题....我想要的就是这个,下面那个工作起来不够快
命令: 4L
四边形初始位置:
四边形一条边: 41
四边形二条边: 47
四边形三条边: 57
四边形四条边: 49
四边形左对角线: 64
; 错误: no function definition: XYP-TF-YXDL-3SIDE
页: [1] 2
查看完整版本: 请 [院长] 看下这个程序,有小小出入,不知为什么