vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Was paßt hier nicht? 
Autor: Hannes H.
Datum: 10.12.05 22:06

Hallo

Starre schon einige Stunden auf den Bildschirm, finde aber den Fehler nicht.
Folgender Code funktioniert:

        MessageBox.Show(test(347.6305, 192.3069, 1347.6305, 192.3069, 449.8265, _
          138.4294, 467.9634, 182.2364))
Zur Erklärung:
2 Linien werden überprüft ob sie sich schneiden
    Function test(ByVal p1x As Integer, ByVal p1y As Integer, ByVal p2x As _
      Integer, ByVal p2y As Integer, ByVal s1x As Integer, ByVal s1y As _
      Integer, ByVal s2x As Integer, ByVal s2y As Integer)
        Dim hlp, t, u As Integer
        Dim teste As Integer
 
        If s2x - s1x <> 0 Then
            'Fall1
            hlp = p2y - p1y - (s2y - s1y) * (p2x - p1x) / (s2x - s1x)
            If hlp <> 0 Then
                t = (s1y - p1y + (s2y - s1y) * (p1x - s1x) / (s2x - s1x)) / hlp
                If t >= 0 And t <= 1 Then
                    u = t * (p2x - p1x) / (s2x - s1x) + (p1x - s1x) / (s2x - _
                      s1x)
                    If u >= 0 And u <= 1 Then teste += 1
                End If
            End If
        ElseIf p2x - p1x <> 0 Then
            'Fall2
            t = (s1x - p1x) / (p2x - p1x)
            If t >= 0 And t <= 1 Then
                u = (p1y - s1y + (p2y - p1y) * (s1x - p1x) / (p2x - p1x)) / ( _
                  s2y - s1y)
                If u >= 0 And u <= 1 Then teste += 1
            End If
        Else
            'Fall3
 
        End If
        Return teste
    End Function
Teste wird als 0 zurückgegeben, da keiner der Bedingungen wahr sein darf.

Jetzt brauche ich diese um über eine Schleife mehrere Punkte zu vergleichen.
Die Punkte sind in einem Arraylist und werden mit übergeben:
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Was paßt hier nicht?668Hannes H.10.12.05 22:06
Re: Was paßt hier nicht?466Hannes H.10.12.05 22:06
Hat sich erledigt492Hannes H.10.12.05 22:25

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel