cable2004 发表于 2014-1-3 16:19:46

求三角形边长。

Q1241274614 发表于 2014-1-3 16:19:47

(defun c:tt1 ( / i l s )
(setq pt1 (getpoint "\n选取点位置:")
        pt2 (getpoint "\n选取点位置:")
      r 40
        l   (distance pt1 pt2)
        ang (* 0.25 pi))
(princ (setq b (/ (- (* l l) (* r r)) (+ (* 2 r) (* 2 l (cos ang))))))
(entmakex
                (append
                  (list
                     '(0 . "LWPOLYLINE")
                     '(100 . "AcDbEntity")
                     '(100 . "AcDbPolyline")
                        (cons 90 3)
                        (cons 62 1)
                     '(70 . 1)

                  )
                  (mapcar '(lambda ( x ) (cons 10 x)) (list pt1 pt2 (polar pt2 (- pi ang) b)))
                )
            )

(princ)
)

菜卷鱼 发表于 2014-1-3 16:22:58

你这三角形是随手画的吗?

cable2004 发表于 2014-1-3 16:25:11

是,但应该是一个合理的三角形!

菜卷鱼 发表于 2014-1-3 16:29:32

假如是随手画的示意图,根据提供的信息,不可能求出B,因为不规则的三角形只有一个定律,任意两边之和大于第三边,举个例子:三条边100,(50+40),50可以组成三角形,100,(55+40),55也可以组成三角形

cable2004 发表于 2014-1-3 16:39:35

本帖最后由 cable2004 于 2014-1-3 16:53 编辑

忘了,还知道B边与A的角度。才有一个解。

陨落 发表于 2014-1-3 17:23:11

本帖最后由 陨落 于 2014-1-3 17:24 编辑

无唯一解,已证明完毕。A、B关系如下。由该关系式,可以画出无数个满足要求的三角形,其中β为B+40边所对的角

llsheng_73 发表于 2014-1-3 17:39:10

cable2004 发表于 2014-1-3 16:39 static/image/common/back.gif
忘了,还知道B边与A的角度。才有一个解。

不管用什么办法,至少三个条件才能解算三角形
页: [1]
查看完整版本: 求三角形边长。