1、假如4个点为A(X1,Y1)、B(X2,Y2)、C(X3,Y3)、D(X4,Y4)
如果AB的斜率<>BC的斜率,那么ABC构成一个△
即
if (y2-y1)*(x3-x2)<>(x2-x1)*(y3-y2) then
msgbox "ABC构成一个△!"
end if
2、如果ABC构成三角形,那么△ABC的面积计算公式:
a=sqr((y2-y3)^2+(x2-x3)^2)
b=sqr((y1-y3)^2+(x1-x3)^2)
c=sqr((y2-1)^2+(x2-x1)^2)
p=(a+b+c)/2
S△ABC=sqr(p*(p-a)*(p-b)*(p-c))
同理计算:
S△ABD、S△ADC
IF S△ABD+S△ADC=S△ABC then
MSGBOX "D在△ABC内!"
End If
1、假如4个点为A(X1,Y1)、B(X2,Y2)、C(X3,Y3)、D(X4,Y4)
如果AB的斜率<>BC的斜率,那么ABC构成一个△
即
if (y2-y1)*(x3-x2)<>(x2-x1)*(y3-y2) then
msgbox "ABC构成一个△!"
end if
2、如果ABC构成三角形,那么△ABC的面积计算公式:
a=sqr((y2-y3)^2+(x2-x3)^2)
b=sqr((y1-y3)^2+(x1-x3)^2)
c=sqr((y2-1)^2+(x2-x1)^2)
p=(a+b+c)/2
S△ABC=sqr(p*(p-a)*(p-b)*(p-c))
同理计算:
S△ABD、S△ADC
IF S△ABD+S△ADC=1、假如4个点为A(X1,Y1)、B(X2,Y2)、C(X3,Y3)、D(X4,Y4)
如果AB的斜率<>BC的斜率,那么ABC构成一个△
即
if (y2-y1)*(x3-x2)<>(x2-x1)*(y3-y2) then
msgbox "ABC构成一个△!"
end if
2、如果ABC构成三角形,那么△ABC的面积计算公式:
a=sqr((y2-y3)^2+(x2-x3)^2)
b=sqr((y1-y3)^2+(x1-x3)^2)
c=sqr((y2-1)^2+(x2-x1)^2)
p=(a+b+c)/2
S△ABC=sqr(p*(p-a)*(p-b)*(p-c))
同理计算:
S△ABD、S△ADC
IF S△ABD+S△ADC=S△ABC then
MSGBOX "D在△ABC内!"
End If
1、假如4个点为A(X1,Y1)、B(X2,Y2)、C(X3,Y3)、D(X4,Y4)
如果AB的斜率<>BC的斜率,那么ABC构成一个△
即
if (y2-y1)*(x3-x2)<>(x2-x1)*(y3-y2) then
msgbox "ABC构成一个△!"
end if
2、如果ABC构成三角形,那么△ABC的面积计算公式:
a=sqr((y2-y3)^2+(x2-x3)^2)
b=sqr((y1-y3)^2+(x1-x3)^2)
c=sqr((y2-1)^2+(x2-x1)^2)
p=(a+b+c)/2
S△ABC=sqr(p*(p-a)*(p-b)*(p-c))
同理计算:
S△ABD、S△ADC
IF S△ABDS+S△ADC=△ABC then
MSGBOX "D在△ABC内!"
End If
Private Type POINTS
x As Integer
y As Integer
End Type
Sub diag(ByVal p1 As POINTS, ByVal p2 As POINTS, ByVal p3 As POINTS, ByVal p4 As POINTS)
Dim betrigle As Boolean
betrigle = Not ((p2.y - p1.y) * (p3.x - p1.x) = (p2.x - p1.x) * (p3.y - p1.y))
If betrigle = False Then '非三角形
Exit Sub
Else
'..... 'p4在三角形内部与否
End If