Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Private Function GetQuadrant(ByVal t1 As Tuple(Of Double, Double, Double, Double),
- ByVal t2 As Tuple(Of Double, Double, Double, Double)) As _
- Tuple(Of Double, Double, Double, Double)
- Dim pixelMove As Integer = 1 'Um wieviel Pixel das Bilderweitert wird.
- Dim prec As Double = 0.00000000005 'Genauigkeit
- 'Zuerst rechnen wir den xmin,xmax Step aus
- Dim curXmin As Double = t2.Item1
- Dim curXmax As Double = t2.Item2
- Dim curXminDiff As Double = GetAbsolute(t1.Item1, t2.Item1) / Bildgröße.Width
- Dim curXmaxDiff As Double = GetAbsolute(t1.Item2, t2.Item2) / Bildgröße.Width
- Dim curXminStep As Double
- Dim curXmaxStep As Double
- Dim count As Integer
- Do While True
- curXminStep += (curXminDiff * pixelMove)
- curXmaxStep += (curXmaxDiff * pixelMove)
- If curXmin < t1.Item1 Then curXmin += curXminDiff
- If curXmin > t1.Item1 Then curXmin -= curXminDiff
- If curXmax < t1.Item2 Then curXmax += curXmaxDiff
- If curXmax > t1.Item2 Then curXmax -= curXmaxDiff
- curXmaxDiff = GetAbsolute(t1.Item2, curXmax) / Bildgröße.Width
- curXminDiff = GetAbsolute(t1.Item1, curXmin) / Bildgröße.Width
- If GetAbsolute(curXmin, t2.Item1) > GetAbsolute(t1.Item1, t2.Item1) - prec Or
- GetAbsolute(curXmax, t2.Item2) > GetAbsolute(t1.Item2, t2.Item2) - prec Then
- Exit Do
- End If
- count += 1
- Loop
- curXmaxStep /= Bildgröße.Width
- curXminStep /= Bildgröße.Width
- Dim curYmin As Double = t2.Item3
- Dim curYmax As Double = t2.Item4
- Dim curYminDiff As Double = GetAbsolute(t1.Item3, t2.Item3) / Bildgröße.Height
- Dim curYmaxDiff As Double = GetAbsolute(t1.Item4, t2.Item4) / Bildgröße.Height
- Dim curYminStep As Double = 0
- Dim curYmaxStep As Double = 0
- Dim pxly As Integer = 0
- Do While True
- curYminStep += (curYminDiff * pixelMove)
- curYmaxStep += (curYmaxDiff * pixelMove)
- If curYmin < t1.Item3 Then curYmin += curYminDiff
- If curYmin > t1.Item3 Then curYmin -= curYminDiff
- If curYmax < t1.Item4 Then curYmax += curYmaxDiff
- If curYmax > t1.Item4 Then curYmax -= curYmaxDiff
- curYminDiff = GetAbsolute(t1.Item3, curYmin) / Bildgröße.Height
- curYmaxDiff = GetAbsolute(t1.Item4, curYmax) / Bildgröße.Height
- If GetAbsolute(curYmin, t2.Item3) > GetAbsolute(t1.Item3, t2.Item3) - prec Or
- GetAbsolute(curYmax, t2.Item4) > GetAbsolute(t1.Item4, t2.Item4) - prec Then
- Exit Do
- End If
- count += 1
- Loop
- curYmaxStep /= Bildgröße.Height 'Wieder auf einzelne Steps anpassen
- curYminStep /= Bildgröße.Height
- Return New Tuple(Of Double, Double, Double, Double)(curXminStep, curXmaxStep, curYminStep, curYmaxStep)
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement