Remove obsolete squares (something wrong with areas calcualtion)
This commit is contained in:
parent
583bd274c7
commit
9b47f4e4d0
|
|
@ -3,6 +3,16 @@ Public Class AppForm
|
||||||
Public Shared fillMode As Boolean
|
Public Shared fillMode As Boolean
|
||||||
|
|
||||||
Sub AppForm_Load() Handles MyBase.Load
|
Sub AppForm_Load() Handles MyBase.Load
|
||||||
|
Dim dir As New IO.DirectoryInfo("C:\Users\Anton\Documents\Exjobb")
|
||||||
|
If dir.Exists Then
|
||||||
|
Individual.filepath = "C:\Users\Anton\Documents\Exjobb"
|
||||||
|
Else
|
||||||
|
Individual.filepath = "C:\Users\xperd\Documents"
|
||||||
|
End If
|
||||||
|
|
||||||
|
Settings.filesFolder = Individual.filepath
|
||||||
|
Settings.HLCtFolder = Individual.filepath & "\X2021"
|
||||||
|
|
||||||
Me.Width = 1400
|
Me.Width = 1400
|
||||||
Me.Height = 800
|
Me.Height = 800
|
||||||
Me.Top = 20
|
Me.Top = 20
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
Public Class Individual
|
Public Class Individual
|
||||||
'Public Shared filepath As String = "C:\Users\Anton\Documents\Exjobb"
|
Public Shared filepath As String '= "C:\Users\Anton\Documents\Exjobb"
|
||||||
Public Shared filepath As String = "C:\Users\xperd\Documents"
|
'Public Shared filepath As String = "C:\Users\xperd\Documents"
|
||||||
|
|
||||||
Sub Load_GUI()
|
Sub Load_GUI()
|
||||||
' Initialize GUI
|
' Initialize GUI
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
Imports XCCLibrary
|
Imports XCCLibrary
|
||||||
Public Class Settings
|
Public Class Settings
|
||||||
Public Shared filesFolder As String = Individual.filepath ' Hämta från settings
|
Public Shared filesFolder As String '= Individual.filepath ' Hämta från settings
|
||||||
Public Shared HLCtFolder As String = Individual.filepath & "\X2021" ' Hämta från settings
|
Public Shared HLCtFolder As String '= Individual.filepath & "\X2021" ' Hämta från settings
|
||||||
|
|
||||||
' --- Settings button clicked ---
|
' --- Settings button clicked ---
|
||||||
Public Shared Sub ButtonClicked(sender As Object, e As EventArgs)
|
Public Shared Sub ButtonClicked(sender As Object, e As EventArgs)
|
||||||
|
|
|
||||||
|
|
@ -436,37 +436,38 @@ Public Class Model_3D_Fill
|
||||||
GP.Add(p3)
|
GP.Add(p3)
|
||||||
GP.Add(p4)
|
GP.Add(p4)
|
||||||
|
|
||||||
|
|
||||||
Dim cornerAngleCounter As Integer = 1
|
Dim cornerAngleCounter As Integer = 1
|
||||||
|
Dim cornerRectangleCounter As Integer = 1
|
||||||
|
Dim numOfSideRectangles As Integer = 0
|
||||||
For j = 0 To Data.recessData.Rows.Count - 1
|
For j = 0 To Data.recessData.Rows.Count - 1
|
||||||
If Data.recessData.Rows(j)("RECESS TYPE") = "ANGLE" Then
|
If Data.recessData.Rows(j)("RECESS TYPE") = "ANGLE" Then
|
||||||
Dim RP As New List(Of Integer())
|
Dim RP As New List(Of Integer())
|
||||||
Dim rec1(1), rec2(1), rec3(1) As Integer
|
Dim rec1(1), rec2(1), rec3(1) As Integer
|
||||||
If Data.recessData.Rows(j)("CORNER") = 1 Then
|
|
||||||
rec1(0) = -origo(0)
|
|
||||||
rec1(1) = origo(1)
|
|
||||||
|
|
||||||
ElseIf Data.recessData.Rows(j)("CORNER") = 2 Then
|
rec1(0) = Data.grossAreaPoints.Rows(Data.recessData.Rows(j)("CORNER") - 1)("X") * 1000
|
||||||
rec1(0) = origo(0)
|
rec1(1) = Data.grossAreaPoints.Rows(Data.recessData.Rows(j)("CORNER") - 1)("Y") * 1000
|
||||||
rec1(1) = origo(1)
|
|
||||||
|
|
||||||
ElseIf Data.recessData.Rows(j)("CORNER") = 3 Then
|
'If Data.recessData.Rows(j)("CORNER") = 1 Then
|
||||||
rec1(0) = origo(0)
|
' rec1(0) = -origo(0)
|
||||||
rec1(1) = -origo(1)
|
' rec1(1) = origo(1)
|
||||||
|
'ElseIf Data.recessData.Rows(j)("CORNER") = 2 Then
|
||||||
Else
|
' rec1(0) = origo(0)
|
||||||
rec1(0) = -origo(0)
|
' rec1(1) = origo(1)
|
||||||
rec1(1) = -origo(1)
|
'ElseIf Data.recessData.Rows(j)("CORNER") = 3 Then
|
||||||
|
' rec1(0) = origo(0)
|
||||||
End If
|
' rec1(1) = -origo(1)
|
||||||
|
'Else
|
||||||
|
' rec1(0) = -origo(0)
|
||||||
|
' rec1(1) = -origo(1)
|
||||||
|
'End If
|
||||||
|
|
||||||
Dim rowIndex As Integer
|
Dim rowIndex As Integer
|
||||||
For k = 0 To Data.gratingPoints.Rows.Count - 1
|
For k = 0 To Data.gratingPoints.Rows.Count - 1
|
||||||
If Data.gratingPoints.Rows(k)("NAME") = "CA" & cornerAngleCounter & "_" & 1 Then
|
If Data.gratingPoints.Rows(k)("NAME") = "CA" & cornerAngleCounter & "_" & 1 Then
|
||||||
rowIndex = k
|
rowIndex = k
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Next
|
Next
|
||||||
|
|
||||||
rec2(0) = Data.gratingPoints.Rows(rowIndex)("X") * 1000
|
rec2(0) = Data.gratingPoints.Rows(rowIndex)("X") * 1000
|
||||||
rec2(1) = Data.gratingPoints.Rows(rowIndex)("Y") * 1000
|
rec2(1) = Data.gratingPoints.Rows(rowIndex)("Y") * 1000
|
||||||
|
|
||||||
|
|
@ -477,28 +478,74 @@ Public Class Model_3D_Fill
|
||||||
RP.Add(rec2)
|
RP.Add(rec2)
|
||||||
RP.Add(rec3)
|
RP.Add(rec3)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dim gratingObsolete As Boolean = True
|
Dim gratingObsolete As Boolean = True
|
||||||
For k = 0 To 3
|
For k = 0 To 3
|
||||||
|
|
||||||
Dim pInTriangle As Boolean = Calculate_Triangle_Bool(GP(k), RP(0), RP(1), RP(2))
|
Dim pInTriangle As Boolean = Calculate_Triangle_Bool(GP(k), RP(0), RP(1), RP(2))
|
||||||
|
|
||||||
|
|
||||||
If pInTriangle = False Then
|
If pInTriangle = False Then
|
||||||
gratingObsolete = False
|
gratingObsolete = False
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Next
|
Next
|
||||||
If gratingObsolete = True Then
|
If gratingObsolete = True Then
|
||||||
listOfObsolete.Add(i)
|
listOfObsolete.Add(i)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
cornerAngleCounter += 1
|
cornerAngleCounter += 1
|
||||||
|
|
||||||
ElseIf Data.recessData.Rows(j)("RECESS TYPE") = "SQUARE" OrElse Data.recessData.Rows(j)("RECESS TYPE") = "SIDE SQUARE" Then
|
ElseIf Data.recessData.Rows(j)("RECESS TYPE") = "SQUARE" OrElse Data.recessData.Rows(j)("RECESS TYPE") = "SIDE SQUARE" Then
|
||||||
'Fyra punkter rektangalarna
|
Dim RP As New List(Of Integer())
|
||||||
|
Dim rec1(1), rec2(1), rec3(1), rec4(1) As Integer
|
||||||
|
|
||||||
|
Dim rowIndex As Integer
|
||||||
|
If Data.recessData.Rows(j)("RECESS TYPE") = "SQUARE" Then
|
||||||
|
For k = 0 To Data.gratingPoints.Rows.Count - 1
|
||||||
|
If Data.gratingPoints.Rows(k)("NAME") = "CR" & cornerRectangleCounter & "_" & 1 Then
|
||||||
|
rowIndex = k
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
cornerRectangleCounter += 1
|
||||||
|
Else
|
||||||
|
For k = 0 To Data.gratingPoints.Rows.Count - 1
|
||||||
|
If Data.gratingPoints.Rows(k)("NAME") = "CS" & numOfSideRectangles & "_" & 1 Then
|
||||||
|
rowIndex = k
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
numOfSideRectangles += 1
|
||||||
|
End If
|
||||||
|
|
||||||
|
rec1(0) = Data.gratingPoints.Rows(rowIndex)("X") * 1000
|
||||||
|
rec1(1) = Data.gratingPoints.Rows(rowIndex)("Y") * 1000
|
||||||
|
|
||||||
|
rec2(0) = Data.gratingPoints.Rows(rowIndex + 1)("X") * 1000
|
||||||
|
rec2(1) = Data.gratingPoints.Rows(rowIndex + 1)("Y") * 1000
|
||||||
|
|
||||||
|
rec3(0) = Data.gratingPoints.Rows(rowIndex + 2)("X") * 1000
|
||||||
|
rec3(1) = Data.gratingPoints.Rows(rowIndex + 2)("Y") * 1000
|
||||||
|
|
||||||
|
If Data.recessData.Rows(j)("RECESS TYPE") = "SQUARE" Then
|
||||||
|
rec4(0) = Data.grossAreaPoints.Rows(Data.recessData.Rows(j)("CORNER") - 1)("X") * 1000
|
||||||
|
rec4(1) = Data.grossAreaPoints.Rows(Data.recessData.Rows(j)("CORNER") - 1)("Y") * 1000
|
||||||
|
Else
|
||||||
|
rec4(0) = Data.gratingPoints.Rows(rowIndex + 3)("X") * 1000
|
||||||
|
rec4(1) = Data.gratingPoints.Rows(rowIndex + 3)("Y") * 1000
|
||||||
|
End If
|
||||||
|
|
||||||
|
RP.Add(rec1)
|
||||||
|
RP.Add(rec2)
|
||||||
|
RP.Add(rec3)
|
||||||
|
RP.Add(rec4)
|
||||||
|
|
||||||
|
Dim gratingObsolete As Boolean = True
|
||||||
|
For k = 0 To 3
|
||||||
|
Dim pInSquare As Boolean = Calculate_Square_Bool(GP(k), RP(0), RP(1), RP(2), RP(3))
|
||||||
|
If pInSquare = False Then
|
||||||
|
gratingObsolete = False
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
If gratingObsolete = True Then
|
||||||
|
listOfObsolete.Add(i)
|
||||||
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
@ -533,4 +580,23 @@ Public Class Model_3D_Fill
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Shared Function Calculate_Square_Bool(gp As Integer(), p0 As Integer(), p1 As Integer(), p2 As Integer(), p3 As Integer())
|
||||||
|
Dim squareArea As Double = Math.Abs(p0(0) - p1(0)) * Math.Abs(p1(1) - p2(1))
|
||||||
|
If squareArea = 0 Then
|
||||||
|
squareArea = Math.Abs(p0(1) - p1(1)) * Math.Abs(p1(0) - p2(0))
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim area1 As Double = gp(0) * p0(1) + gp(1) * p1(0) + p0(0) * p1(1) - p0(1) * p1(0) - gp(1) * p0(0) - gp(0) * p1(1)
|
||||||
|
Dim area2 As Double = gp(0) * p1(1) + gp(1) * p2(0) + p1(0) * p2(1) - p1(1) * p2(0) - gp(1) * p1(0) - gp(0) * p2(1)
|
||||||
|
Dim area3 As Double = gp(0) * p2(1) + gp(1) * p3(0) + p2(0) * p3(1) - p2(1) * p3(0) - gp(1) * p2(0) - gp(0) * p3(1)
|
||||||
|
Dim area4 As Double = gp(0) * p3(1) + gp(1) * p0(0) + p3(0) * p0(1) - p3(1) * p0(0) - gp(1) * p3(0) - gp(0) * p0(1)
|
||||||
|
Dim compArea As Double = area1 + area2 + area3 + area4
|
||||||
|
|
||||||
|
If compArea > squareArea Then
|
||||||
|
Return False
|
||||||
|
Else
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
End Class
|
End Class
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue