Hallo,
den folgenden gesammten Code musst du in eine Klasse zwischen "Class Klasse" und "End Class" schreiben...in deinem fall höchstwahrscheinlich "Class Form1"...
Structure strGerade
Private m_X1 As Single
Private m_X2 As Single
Private m_Y1 As Single
Private m_Y2 As Single
Private m_m As Single
Private m_b As Single
Sub New(ByVal X1 As Single, ByVal X2 As Single, ByVal Y1 As Single, _
ByVal Y2 As Single)
m_X1 = X1
m_X2 = X2
m_Y1 = Y1
m_Y2 = Y2
m_m = (Y2 - Y1) / (X2 - X1)
m_b = Y2 - m_m * X2
If Y2 = Y1 Then m_m = 0
If X2 = X1 Then m_b = Y2 - Y1 : m_m = 0
End Sub
ReadOnly Property X1() As Single
Get
Return m_X1
End Get
End Property
ReadOnly Property X2() As Single
Get
Return m_X2
End Get
End Property
ReadOnly Property Y1() As Single
Get
Return m_Y1
End Get
End Property
ReadOnly Property Y2() As Single
Get
Return m_Y2
End Get
End Property
ReadOnly Property m() As Single
Get
Return m_m
End Get
End Property
ReadOnly Property b() As Single
Get
Return m_b
End Get
End Property
End Structure
Function GetSchnittpunkt(ByVal Gerade1 As strGerade, ByVal Gerade2 As _
strGerade) As PointF
Dim KreuzX As Single = (Gerade2.b - Gerade1.b) / (Gerade1.m - Gerade2.m)
Dim KreuzY As Single = Gerade1.m * KreuzX + Gerade1.b
If KreuzX.ToString = "n. def." And KreuzY.ToString = "n. def." Then
Throw New Exception("Die Linien Verlaufen Parallel und treffen" & _
"sich" & _
"deshalb Nie.")
End If
Return New PointF(KreuzX, KreuzY)
End Functiondann musst du entsprechend dort wo der Schnittpunkt berechnet werden soll dies hier einfügen mit deinen entsprechenden anpassungen:
Try
Dim g1 As strGerade = New strGerade(0, 100, 0, 100)'Hier musst du
' entsprechend selbst deine Koordinaten eintragen...(hier wird New
' das erste mal aufgerufen)
Dim g2 As strGerade = New strGerade(0, 200, 0, 200)'genauso wie
' hier...
Dim pnt As PointF = GetSchnittpunkt(g1, g2)
MsgBox(pnt.ToString)'Gibt den Schnittpunkt aus
Catch ex As Exception
MsgBox(ex.Message)
End Try
'Ergebnis die Linien verlaufen Parallel ich hoffe dies hilft dir weiter...andernfalls wäre es evtl. besser über einen Chat Clienten zu schreiben...(ich hab MSN, ICQ und Xfire)
Gruß jvbsl |