孤独客 发表于 2006-8-2 18:00:00

[LISP]怎样判断三点共线

怎样判断三点共线

hwang21 发表于 2006-8-2 19:35:00

<P>斜率,判断是否相等,(x1-x2)/(y1-y2)=(x3-x1)/(y3-y1)</P>

Andyhon 发表于 2006-8-3 15:25:00

<P>斜率判断法<BR>这个式子不适用于 y1 = y2 = y3 的情况</P>
<P>三点不共线则成三角形</P>
<P>a. 两边之和大于第三边<BR>b. 面积不为零</P>
<P>要考量/排除同一点位值的情况</P>
<P>&nbsp;</P>

LONGXIN 发表于 2006-8-3 16:34:00

<P><A href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=48974" target="_blank" >http://bbs.mjtd.com/forum.php?mod=viewthread&tid=48974</A></P>
<P>参见几何算法中矢量叉积和折线拐向的问题可以解决</P>

lazybug 发表于 2006-8-3 16:50:00

<P>(= (angle pt1 pt2) (angle pt1 pt32))</P>
<P>&nbsp;</P>
<P>&nbsp;</P>

yshf 发表于 2006-8-4 10:06:00

<P>三点所组成的三角形面积等于零。</P>
<P>X1(y2-y3)+x2(y3-y1)+x3(y1-y2)=0</P>

liu_kunlun 发表于 2006-8-4 11:20:00

<P>(&lt; (abs (sin (- (angle&nbsp; pt1 pt2) (angle pt2 pt3)))) diff)</P>
<P>diff为允许误差,其值约为角度的弧度差值</P>

sjsapple 发表于 2006-8-12 15:18:00

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="mso-spacerun: yes"><FONT face="Times New Roman">&nbsp;&nbsp;<SPAN style="FONT-SIZE: 14pt; mso-bidi-font-size: 12.0pt"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>很容易判断,假设p1,p2是一条直线的两点,p3是任意一点,三点之间构成的边长长度分别为L_p1p2,L_p1p3,L_p2p3,(总长)三边之和为L_3p,其中最大的一条边为L_max,则判断如下:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 28.5pt">1、如果3点均在一条线上,那么最长的一条边应等于两条短边之和。<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 28.5pt">(=<SPAN style="mso-spacerun: yes">&nbsp; L_max&nbsp; (*&nbsp; L_3p&nbsp; 0.5))<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 28.5pt">2、如果点p3在直线p1,p2之间,那么直线的长度L_p1p2必然是最大一条边L_max。<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 28.5pt">(=<SPAN style="mso-spacerun: yes">&nbsp; L_p1p2&nbsp; L_max)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"></FONT></SPAN></SPAN></P>

bskidtf 发表于 2024-6-4 12:44:29

用向量叉积

gzcsun 发表于 2024-6-5 11:28:54

用长度判断,3点3个长度,如果2个短的等于长的就是共线,或者只要任意2个等于1个就是共线。
页: [1]
查看完整版本: [LISP]怎样判断三点共线