AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Überschneiden sich zwei Vierecke (nicht Rechtecke)?
Thema durchsuchen
Ansicht
Themen-Optionen

Überschneiden sich zwei Vierecke (nicht Rechtecke)?

Ein Thema von xaromz · begonnen am 8. Okt 2006 · letzter Beitrag vom 8. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#1

Überschneiden sich zwei Vierecke (nicht Rechtecke)?

  Alt 8. Okt 2006, 18:15
Hallo,

es gibt ja (auch hier in der DP) Algorithmen, um zu überprüfen, ob sich zwei Rechtecke überlappen.
Wie prüfe ich so etwas bei zwei beliebigen Vierecken bzw. bei einem Rechteck und einem Viereck?

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

Re: Überschneiden sich zwei Vierecke (nicht Rechtecke)?

  Alt 8. Okt 2006, 18:26
MSDN-Library durchsuchenRegion Functions

Mit "Create...Rgn()" kannst du beliebige Regionen erstellen und mit "...InRgn()" kannst du prüfen, ob ein Viereck in einer Region liegt.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Überschneiden sich zwei Vierecke (nicht Rechtecke)?

  Alt 8. Okt 2006, 18:29
Hallo,
nehme das eine Polygon als ganzes
und prüfe dann für die einzelnen Punkte des anderen, ob sie innerhalb des ersten sind, sind sie's, schneiden sie sich.
prüfen ob ein Punkt innerhalb eines Polygons ist
Der erste Link, der dort gepostet wurde beschreibt eine Lösung in C, das habe ich aber soweit ich mich erinnern kann nach Delphi übersetzt, wenn du willst kann ich dir das raussuchen.
Den letzten Link, den sniper_w gepostet hat, habe ich damals dann nicht mehr angesehen, aber ich denke, dass ist das, was du brauchst.

[Edit]Schade, SirThornberry hat recht, da war ich wohl zu vorschnell
Benjamin
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Überschneiden sich zwei Vierecke (nicht Rechtecke)?

  Alt 8. Okt 2006, 18:30
Hallo,
Zitat von ste_ett:
Ich weiß. Ich wollte aber keine Windows-Funktion, sondern einen Algorithmus .

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Überschneiden sich zwei Vierecke (nicht Rechtecke)?

  Alt 8. Okt 2006, 18:32
Zitat von BenjaminH:
Hallo,
nehme das eine Polygon als ganzes
und prüfe dann für die einzelnen Punkte des anderen, ob sie innerhalb des ersten sind, sind sie's, schneiden sie sich.
prüfen ob ein Punkt innerhalb eines Polygons ist
Der erste Link, der dort gepostet wurde beschreibt eine Lösung in C, das habe ich aber soweit ich mich erinnern kann nach Delphi übersetzt, wenn du willst kann ich dir das raussuchen.
Den letzten Link, den sniper_w gepostet hat, habe ich damals dann nicht mehr angesehen, aber ich denke, dass ist das, was du brauchst.
auch wenn die Punkte nicht innerhalb des Polygons sind kann es trotzdem dieses überdecken bzw. können sich die Linien schneiden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Überschneiden sich zwei Vierecke (nicht Rechtecke)?

  Alt 8. Okt 2006, 18:50
Du könntest jede Kante der beiden Polygone gegenenander auf Überschneidung testen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#7

Re: Überschneiden sich zwei Vierecke (nicht Rechtecke)?

  Alt 8. Okt 2006, 19:02
Windows API -> IntersectRect();

Gruß Hagen
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#8

Re: Überschneiden sich zwei Vierecke (nicht Rechtecke)?

  Alt 8. Okt 2006, 19:05
Hallo,
Zitat von mkinzler:
Du könntest jede Kante der beiden Polygone gegenenander auf Überschneidung testen.
Und was mache ich, wenn das eine Polygon komplett im anderen liegt?

@Hagen: Es geht um allgemeine Vierecke, nicht Rechtecke. Außerdem: Ich will einen Algorithmus. Elegant, wenn's geht .

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Überschneiden sich zwei Vierecke (nicht Rechtecke)?

  Alt 8. Okt 2006, 19:08
Zitat:
Und was mache ich, wenn das eine Polygon komplett im anderen liegt?
Das müßtest du dann zusätzlich austesten.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#10

Re: Überschneiden sich zwei Vierecke (nicht Rechtecke)?

  Alt 8. Okt 2006, 19:34
Zitat von SirThornberry:
Zitat von BenjaminH:
Hallo,
nehme das eine Polygon als ganzes
und prüfe dann für die einzelnen Punkte des anderen, ob sie innerhalb des ersten sind, sind sie's, schneiden sie sich.
prüfen ob ein Punkt innerhalb eines Polygons ist
Der erste Link, der dort gepostet wurde beschreibt eine Lösung in C, das habe ich aber soweit ich mich erinnern kann nach Delphi übersetzt, wenn du willst kann ich dir das raussuchen.
Den letzten Link, den sniper_w gepostet hat, habe ich damals dann nicht mehr angesehen, aber ich denke, dass ist das, was du brauchst.
auch wenn die Punkte nicht innerhalb des Polygons sind kann es trotzdem dieses überdecken bzw. können sich die Linien schneiden.
Du musst pruefen ob mind. ein Eckpunkt von VE A in VE B liegt. Trifft das nicht zu, musst du pruefen ob ein Eckpunkt von B in A liegt

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz