' Define Corners 1, 2, 3, and 4
' Find the lengths of
' Side 1_2
' Side 2_3
' Side 3_4
' Side 4_1
' Diagonal 1_3
' Diagonal 2_4
'
' 1-----------2
' | |
' | |
' | |
' 4-----------3
'
' If Side 1_2 = Side 3_4 and Side 4_1 = Side 2_3 Then
' Either Square, parallagram or Rectangle
' If Diagonal 1_3 = Diagonal 2_4 Then Rectangle or Square
' Else parallagram
Option Explicit
Private Type Corners
X As Integer
Y As Integer
End Type
Dim Corner(1 To 4) As Corners
Dim Side(1 To 4) As Single
Dim Diagonal(1) As Single
Private Sub Form_Load()
Me.AutoRedraw = True
Me.Show
' Define the corners of the rectangle
Corner(1).X = 400
Corner(1).Y = 400
Corner(2).X = 2400
Corner(2).Y = 200
Corner(3).X = 2500
Corner(3).Y = 1200
Corner(4).X = 500
Corner(4).Y = 1400
' Draw the rectangle
Me.Line (Corner(1).X, Corner(1).Y)-(Corner(2).X, Corner(2).Y)
Me.Line -(Corner(3).X, Corner(3).Y)
Me.Line -(Corner(4).X, Corner(4).Y)
Me.Line -(Corner(1).X, Corner(1).Y)
' Get the length of each side
Side(1) = GetLength(Corner(1), Corner(2)) ' Side 1_2
Side(2) = GetLength(Corner(3), Corner(4)) ' Side 3_4
Side(3) = GetLength(Corner(2), Corner(3)) ' Side 2_3
Side(4) = GetLength(Corner(4), Corner(1)) ' Side 4_1
' Get Diagonal Lengths
Diagonal(0) = GetLength(Corner(1), Corner(3))
Diagonal(1) = GetLength(Corner(2), Corner(4))
End Sub
Private Function GetLength(FirstCorner As Corners, SecondCorner As Corners) As Single
Dim A As Long
Dim B As Long
Dim C As Long
A = Abs(FirstCorner.X - SecondCorner.X)
B = Abs(FirstCorner.Y - SecondCorner.Y)
C = A ^ 2 + B ^ 2
GetLength = Sqr(C)
End Function