AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schnittpunkt zweier Strecken

Ein Thema von DARKLORD-X- · begonnen am 7. Dez 2005 · letzter Beitrag vom 8. Feb 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Dj_Base
Dj_Base

Registriert seit: 10. Aug 2004
Ort: Aachen
231 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Schnittpunkt zweier Strecken

  Alt 7. Dez 2005, 21:38
Hi!

Du musst anhand der beiden gegeben Punkte m und n für die beiden Geradengleichungen ausrechnen!
-> y = m*x+n
Dann müssen beide Gleichungen gleichgesetzt werden, um sie somit zu schneiden...

Dann kannst du aus dem ermittelten Werte durch Einsetzen die y-Koordinat ermitteln!

Fertig ist der Schnitt punkt!

Warum ich das weiß? Habe ich grade in Mathe nochmal gemacht...

Gruß,
Dj_Base
  Mit Zitat antworten Zitat
Benutzerbild von DARKLORD-X-
DARKLORD-X-

Registriert seit: 11. Dez 2004
Ort: Wildenbruch
10 Beiträge
 
#12

Re: Schnittpunkt zweier Strecken

  Alt 7. Dez 2005, 21:46
Dj_Base: Danke, aber dann hab ich immernoch das Problem wenn X am Anfang und Ende gleich ist. Dann ist m nämlich unendlich groß. (Division durch Null)
MfG DARKLORD-X-
  Mit Zitat antworten Zitat
Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#13

Re: Schnittpunkt zweier Strecken

  Alt 7. Dez 2005, 21:52
Das Problem, dass die Geraden aufeinander liegen könntest du mit einem simplen Vergleich der Startpunkte abfangen:
Delphi-Quellcode:
if (xs = xs2) and (ys = ys2) then
  //1. Startpunkt ausgeben
else
  //Schnittpunkt mit Geradengleichungen berechnen
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#14

Re: Schnittpunkt zweier Strecken

  Alt 7. Dez 2005, 22:12
Zitat von Oxmyx:
Zitat von BenjaminH:
Wenn die x werte von Start und End punkt einer Strecke gleich sind drehst du das ganze halt um 90°
Und was machst du dann bei diesen beiden Geraden?

x = 1
y = 2
Dann ist der Schnittpunkt S(1|2)

Mein Vorschlag (Pseudocode):

Delphi-Quellcode:
if FormatOfStrecke1 = 'y=y1then
  begin
  Sy:=y1;
  if FormatOfStrecke2 = 'y=y2then
    begin
    if y2=y1 then OK else Abbrechen;
    end
  else if FormatOfStrecke2 = 'x=x2then
    begin
    Sx:=x2;
    end
  else if FormatOfStrecke2 = 'y=m1*x+b1then
    begin
    Sx:=(y2-b2)/m2;
    end;
  end
else if FormatOfStrecke1 = 'x=x1then
  begin
  Sx:=x1;
  if FormatOfStrecke2 = 'y=y2then
    begin
    Sy:=y2;
    end
  else if FormatOfStrecke2 = 'x=x2then
    begin
    if x2=x1 then OK else Abbrechen;
    end
  else if FormatOfStrecke2 = 'y=m2*x+b2then
    begin
    Sy:=m2*Sx+b2;
    end;
  end
else if FormatOfStrecke1 = 'y=m1*x+b1then
  begin
  if FormatOfStrecke2 = 'y=y2then
    begin
    Sy:=y2;
    Sx:=(Sy-b1)/m1;
    end
  else if FormatOfStrecke2 = 'x=x2then
    begin
    Sx:=x2;
    Sy:=m1*Sx+b1;
    end
  else if FormatOfStrecke2 = 'y=m2*x+b2then
    begin
    //Normale Berechnung...
    end;
  end;
Edit: Völliger Schwachsinn
ich überdenke das bis morgen nochmal...

Edit 2:
Jetzt aber
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
mare_crisium

Registriert seit: 6. Nov 2005
17 Beiträge
 
Delphi 5 Standard
 
#15

Re: Schnittpunkt zweier Strecken

  Alt 7. Dez 2005, 22:28
Darklord,

guck' Dir doch mal den Code an, den ich für einen anderen Thread geschrieben hatte. Da ging es um die Schnittpunkte zwischen den Seiten eines Controls und einer Geraden. Dazu hatte ich eine Unit mit einer nützlichen Sammlung von Routinen für zweidimensionale Vektoren geschrieben. Darin findest Du auch eine Routine mit der Du den Schnittpunkt zweier Strecken berechnen kannst.

Sag' mal, ob Du damit was anfangen kannst.

mare_crisium
Angehängte Dateien
Dateityp: pas spktu100_190.pas (14,0 KB, 85x aufgerufen)
  Mit Zitat antworten Zitat
Dummy

Registriert seit: 15. Nov 2004
18 Beiträge
 
#16

Re: Schnittpunkt zweier Strecken

  Alt 8. Feb 2006, 11:58
Hallo mare_crisium,

ich stehe vor einem ähnlichen Problem.
Es geht darum Festzustellen ob ein Punkt in innerhalb eines Polygons liegt, das eine bestimmte Anzahl von Eckpunkten hat(X,Y Koordinaten).
Deine Unit hab ich gerade mal runtergeladen und überflogen. Alle Achtung, hast dir sehr viel Mühe gegeben und sehr ausführlich erklärt.
Werde mir deine Ausführungen heute abend mal zu gemüte führen und hoffe das ich damit weiter komme da ich mich schon seit fast einer woche mit den sch... Vektoren rumschlage. ( Sprung ins kalte Meer der Gefahren)

Wäre dir dankbar wenn mich ich ggf. noch mal an dich wenden könnte.

Bis dahin ertsmal danke für deine ausfürhliche Unit

viele grüsse
Dummy (hoch zwei)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#17

Re: Schnittpunkt zweier Strecken

  Alt 8. Feb 2006, 12:54
Mit der Ausgangsfrage hat das aber nicht mehr sehr viel zu tun . Kann das Polygon auch nichtkonvex sein?
Sebastian
Moderator in der EE
  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:30 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