AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Den Schnittpunkt zweier Strecken berechnen
Thema durchsuchen
Ansicht
Themen-Optionen

Den Schnittpunkt zweier Strecken berechnen

Ein Thema von jfheins · begonnen am 1. Mär 2006 · letzter Beitrag vom 4. Mär 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Den Schnittpunkt zweier Strecken berechnen

  Alt 2. Mär 2006, 10:46
So wie hier mach ich es immer. Beachte den letzten Tip. Bei dir müssen ua und ub im Bereich 0..1 liegen, damit der Schnittpunkt auf beiden Strecken liegt.

\\edit: Der Tipp von runger ist übrigends hervorragend zum Performance sparen. Die Prüfung kann - wenn für x positiv verlaufen - noch für y gemacht werden. Dann ist es rech wahrscheinlich dass die Strecken sich schneiden.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Den Schnittpunkt zweier Strecken berechnen

  Alt 2. Mär 2006, 11:15
Zitat von dizzy:
\\edit: Der Tipp von runger ist übrigends hervorragend zum Performance sparen. Die Prüfung kann - wenn für x positiv verlaufen - noch für y gemacht werden. Dann ist es rech wahrscheinlich dass die Strecken sich schneiden.
Zitat von alzaimar:
... Eine Strecke (P1-P2) hat ja ein umhüllendes Rechteck. Wenn sich diese Rechtecke gar nicht überlappen, gibts auch keinen Schnittpunkt. Damit könnstest Du viele Tests erstmal erschlagen. ...
Ich bin selten so missachtet worden
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Den Schnittpunkt zweier Strecken berechnen

  Alt 2. Mär 2006, 14:23
Zitat von alzaimar:
Ich bin selten so missachtet worden
schulligung... dein Posting war im Gegensatz zu rungers nicht im Bild als ich das schrieb. Keine Absicht
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#14

Re: Den Schnittpunkt zweier Strecken berechnen

  Alt 2. Mär 2006, 14:27
Ok ... ich prüfe gerade mal einen Ansatz mit Vektoren, aber sonst mache ich es so ...
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Den Schnittpunkt zweier Strecken berechnen

  Alt 2. Mär 2006, 16:23
Da gibts kein entweder-oder . Die Variante mit der Box-Überlappung ist lediglich zur schnellen Vorentscheidung, ob du überhaupt einen Schnittpunkt errechnen musst. Das kann man machen um die Performance zu steigern. Bei der eigentlichen Berechnung des Schnittpunktes kommst du ohnehin dahinter, ob es einen gibt oder nicht. Ist halt nur kostspieliger, da du bereits den potentiellen Punkt errechnest.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#16

Re: Den Schnittpunkt zweier Strecken berechnen

  Alt 3. Mär 2006, 22:02
Ok, die Box-Überlappung kommt noch ...

Ich habe jetzt eine kleine Demo gemacht mit meinem Vektoren-Algo, das geht jetzt über den Sinussatz und Skalarprodukt

Die Demo ist angehängt, ich würde mich freuen, wenn ihr ein paar Linien ziehen würdet und dann schaut, ob der Algo funktioniert

Einfach im linken Fensterbereich zwei Linien durch klicken und ziehen malen und dann auf den Button klicken

(Im Memo steht der Code ... falls ihn jemand will ^^)

Falls die Strecken sich überschneiden sollte eine Messagebox mit "intersecting" kommen ...

Falls ihr einen deutlichen (= nicht im Pixelbereich) Fehler habt, dann bitte die Position der zwei Linien posten ...
(Wehe )

Neue Demoi zeigt auch den Schnittpunkt an ...
Angehängte Dateien
Dateityp: exe project1_303.exe (505,5 KB, 49x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#17

Re: Den Schnittpunkt zweier Strecken berechnen

  Alt 4. Mär 2006, 16:26
hmm also wenn schon ein sinus drin vorkommt dann kann der ansatz ja nur langsam sein. warum setzt du nicht den Ansatz von rugner um, der kommt doch mit den grundrechenarten aus. und wenn du dann noch dann noch die linien wie alzaimar vorgeschlagen hat in einer Art kdTree oder Quadtree speicherst dann wird das ganze richtig, richtig schnell.

edit:
bei Wikipeda hast du es sogar schwarz auf weiss: "- Effiziente Kollisionserkennung (Collision Detection) im Zweidimensionalen"
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 23:01 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