Schnittflächen zweier Polygone

  • VB6

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Ganesh.

    Schnittflächen zweier Polygone

    Hallo Zusammen

    Ich brauche dringend eine Funktion, bin aber fast am Verzweifeln :cursing: diese zu programmieren.

    Gegeben: Polygon1 ABCD, Polygon2 EFGH (immer nur Vierecke)
    Gesucht: Polygon3 IFKL (je nach Schnittfläche, kann diese natürlich auch aus mehr, weniger oder gar keinen Punkten bestehen)




    Input:
    X-Koordinate Punkt1 Polygon1 ,Y-Koordinate Punkt1 Polygon1,
    X-Koordinate Punkt2 Polygon1 ,Y-Koordinate Punkt2 Polygon1,
    X-Koordinate Punkt3 Polygon1 ,Y-Koordinate Punkt3 Polygon1,
    X-Koordinate Punkt4 Polygon1 ,Y-Koordinate Punkt4 Polygon1,
    X-Koordinate Punkt1 Polygon2 ,Y-Koordinate Punkt1 Polygon2,
    X-Koordinate Punkt2 Polygon2 ,Y-Koordinate Punkt2 Polygon2,
    X-Koordinate Punkt3 Polygon2 ,Y-Koordinate Punkt3 Polygon2,
    X-Koordinate Punkt4 Polygon2 ,Y-Koordinate Punkt4 Polygon2

    Output:
    X-Koordinate Punkt1 Polygon3 ,Y-Koordinate Punkt1 Polygon3,
    X-Koordinate Punkt2 Polygon3 ,Y-Koordinate Punkt2 Polygon3,
    ...
    ...
    ...
    X-Koordinate Punkt_n Polygon3 ,Y-Koordinate Punkt_n Polygon3

    Hoffe auf rasche Hilfe:rolleyes:.
    Vielen Dank!
    vielleicht hilft dir das weiter !!

    blitzforum.de/forum/viewtopic.…&highlight=line+intersect

    Um zu ermitteln ob ein Punkt auf einer Fläche ist, dann muss man eine Linie von einem Punkt, der 100% ausserhalb der Fläche ist bestimmten (-1,-1) bis zu dem zu überprüfenden Punkt ziehen.

    nun schaut man , wie oft die Linie das Polygon die Linie schneidet. Ist dies ungerade, dann liegt der Punkt innerhalb der Fläche.

    Grüße
    TimBo
    Visual Basic FTW :D
    Programmiere u.a. mit C# (XNA), Blitz Basic 3D, BlitzPlus , PHP.
    Vielen Dank für eure Antworten!

    @ TimBo93
    Das Problem ist, dass man durch so einen Algorithmus, bei jedem einzelnen Punkt des einen Polygons überprüfen müsste, ob dieser auch auf dem anderen Polygon vorhanden ist. Das würde zwar funktionieren, die Sache unglaublich in die Länge ziehen.

    @Neptun
    Ich brauche die Eckpunkte des 3. Polygons eigentlich nur, um dieses mit einer anderen Funktion zu zeichnen. Was weisst du über "Regions"?

    Ganesh
    Du musst nur die Eckpkte. berechnen; alles dazwischen ist automatisch drauf.
    Zunächst kannst du prüfen, ob je einer der vier EP des 1. Vielecks im 2ten liegt.
    Hast du dann noch nicht alle Vier bestimmt, machst du es andersrum; zu guter Letzt noch die Verbindungsstrecken schneiden (für die restlichen Pkte.) geht das nicht, so gibt es auch keinen Schnitt.