yxh1202 发表于 2010-7-16 08:36:00

<p>版主是采用三点画圆的方式啊,很感谢。</p>
<p>定义三点的行列式,即三点之倍面积 </p>
<li>(defun det (p1 p2 p3 / x2 y2)
<li>&nbsp; (setq&nbsp;x2 (car p2)
<li>&nbsp;y2 (cadr p2)
<li>&nbsp; )
<li>&nbsp; (- (* (- x2 (car p3)) (- y2 (cadr p1)))
<li>&nbsp;&nbsp;&nbsp;&nbsp; (* (- x2 (car p1)) (- y2 (cadr p3)))
<li>&nbsp; )</li>
<p><img alt="帅哥哟,离线,有人找我吗?" src="http://bbs.mjtd.com/Skins/Default/ofMale.gif"/> </p>
<div><span style="FILTER: glow(color='#A6BA98',strength='2'); WIDTH: 105px"><font color="#61b713" face="Verdana"><b>highflybird</b></font></div></span>,你好,这个函数是计算已知三点所形成的三角形面积,公式可否讲解一下吗。

xyp1964 发表于 2010-7-16 23:29:00

(defun det (p1 p2 p3 / a b c s)<br/>&nbsp; (setq&nbsp;a (distance p1 p2)<br/>&nbsp;b (distance p2 p3)<br/>&nbsp;c (distance p3 p1)<br/>&nbsp;s (* (+ a b c) 0.5)<br/>&nbsp; )<br/>&nbsp; (sqrt (* s (- s a) (- s b) (- s c)))<br/>)

PEPAN 发表于 2013-1-13 21:33:11

有没有办法实现批量的呢??[

PEPAN 发表于 2013-1-13 21:33:50

即直接选取已有三角形,直接产生内切圆。

阿然 发表于 2013-1-13 23:25:30

highflybird 发表于 2010-7-15 17:09 static/image/common/back.gif
利用角平分线定理,设角平分线为AE,&nbsp;&nbsp; 则有 AB/AC = BE/CE,然后按照这个分比,求出坐标。
内切圆 ...

高飞老师几何神人,我真是第一次知道内切圆半径等于三角形面积两倍/周长,学习了。

pannelchen 发表于 2014-11-26 20:15:41

;三角内切圆,面积
;试编的,在2012上运行成功

(defun getlen(ent)
    (command "lengthen" ent "")
    (getvar "perimeter")
    )

(defun area3(a b c)
    (setq s (* (+ a b c) 0.5))
    (sqrt (* s (- s a) (- s b) (- s c)))
    )
(defun get3()
(setq en1(entsel"\n指定第一边"))
(setq en2(entsel"\n指定第二边"))
(setq en3(entsel"\n指定第三边"))
)

(defun inc3()
(setq pa (cadr en1))
(setq pb (cadr en2))
(setq pc (cadr en3))
(command "circle" "3P" "tan" pa "tan" pb "tan" pc)
)

(defun c:tri_inc_area()
          (get3)
    (inc3)
    (setq a (getlen (car en1)))
          (setq b (getlen (car en2)))
          (setq c (getlen (car en3)))
          (setq ss (area3 a b c))
   (alert (strcat "三角形的面积=" (rtos ss)))

(prin1)
)
(princ "c:tri_inc_area")
页: 1 [2]
查看完整版本: 关于在三角形内画内切圆的难题