<p>定义三点的行列式,即三点之倍面积 </p>
<li>(defun det (p1 p2 p3 / x2 y2)
<li> (setq x2 (car p2)
<li> y2 (cadr p2)
<li> )
<li> (- (* (- x2 (car p3)) (- y2 (cadr p1)))
<li> (* (- x2 (car p1)) (- y2 (cadr p3)))
<li> )</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>,你好,这个函数是计算已知三点所形成的三角形面积,公式可否讲解一下吗。 (defun det (p1 p2 p3 / a b c s)<br/> (setq a (distance p1 p2)<br/> b (distance p2 p3)<br/> c (distance p3 p1)<br/> s (* (+ a b c) 0.5)<br/> )<br/> (sqrt (* s (- s a) (- s b) (- s c)))<br/>) 有没有办法实现批量的呢??[ 即直接选取已有三角形,直接产生内切圆。 highflybird 发表于 2010-7-15 17:09 static/image/common/back.gif
利用角平分线定理,设角平分线为AE, 则有 AB/AC = BE/CE,然后按照这个分比,求出坐标。
内切圆 ...
高飞老师几何神人,我真是第一次知道内切圆半径等于三角形面积两倍/周长,学习了。 ;三角内切圆,面积
;试编的,在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]