Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 05:01

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: So Feb 29, 2004 14:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Hat hier einer eine Funktion zum ausrechnen eines Schnittpunktes von 2 Strecken parat?

-- [Edit] -- [Es geht auch, wenn ich nur weißs ob sich die Strecken schneiden] --


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 29, 2004 19:12 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
http://www.google.de/search?hl=de&ie=UT ... uche&meta=

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 29, 2004 20:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Hi SoS und natürlich hi für alle ;)

Habe mir das die ganze Zeit reingezogen.
Doch irgendwie steig ich da jetzt garnet mehr durch.

Das sieht irgendwie net nach ner normalen Rechnung aus bzw. habe ich sowas noch nie gesehen :-/ mein stand aus der 10. Klasse, hätte gedacht ne Geradengleichung machen und dann checken ob die Punkte so liegen das sich es schneidet.
Kannste mir das nochmal zeigen?
Oder gleich ne Function machen ^^ (Was ich nicht verlangen kann, ich weiß)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 29, 2004 20:44 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Geht es um zwei oder drei Dimensionen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 29, 2004 20:44 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 20, 2003 09:15
Beiträge: 70
Wohnort: Italien
Du brauchst wahrscheinlich den Schnitt im Raum (3D), oder?
Dann must du den Weg über die Matrizen gehen (z.B. 1. Link im google)

Bei 2D reicht es wenn du die Geraden in die Form y=k*x+d bringst, dann durch umformen den x-Schnittpunkt errechnesst und schaust, ob der x-Wert innerhalb einer deiner Linien liegt.

_________________
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt" Albert Einstein


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 29, 2004 20:51 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
2D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 29, 2004 21:07 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Wenn du die beiden Gerade in Punkt Richtungsform hast, also Startpunkt und Richtung, mußt du die erstmal umformen

a1:=Richtung1.y;
b1:=-Richtung1.x;
c1:=a1*Startpunkt1.x+b1*Startpunkt1.y;

a2:=Richtung2.y;
b2:=-Richtung2.x;
c2:=a2*Startpunkt2.x+b2*Startpunkt2.y;

Dann bekommt man das Gleichungssystem:

i) a1*x+b1*y=c1
ii) a2*x+b2*y=c2

Das Gleichungssystem hat keine eindeutige Lösung falls:
a1*b2-a2*b1=0

In diesem Fall sind die Gerade parallel oder identisch.


Zuletzt geändert von LarsMiddendorf am So Feb 29, 2004 21:27, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 29, 2004 21:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Ich weiß schon warum ich das hasse ^^

m=(y2-y1):(x2-x1) <-- m ausrechnen
y1=mx1+n /-mx1 <-- Formel
y1-mx1=n <-- müssen wir noch n ausrechnen :) deshalb auf n umformen

m=(y4-y3):(x4-x3) <-- m ausrechnen
y3=mx3+n /-mx1 <-- Formel
y3-mx3=n <-- müssen wir noch n ausrechnen :) deshalb auf n umformen

y1-mx1 = y3-mx3

Man irgendsowas hatte ich mir gedacht, das allerdings mit deiner Rechnung bzw. Anleitung wohl keinen Zusammenhang hat oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 29, 2004 21:40 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Das Problem ist, daß man mit der Steigungsform nicht alle Geraden darstellen kann.

Die Schnittpunkte wären, in diesem Fall:
s.x:=(c1*b2-c2*b1)/ (a1*b2-a2*b1)
s.y:=(a1*c2-a2*c1)/(a1*b2-a2*b1)

Daran sieht man auch, daß das nicht geht wenn a1*b2-a2*b1=0 ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 01, 2004 12:36 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
wobei bei deinem Beispiel a der x wert und b der y wert ist?
Mensch, das kann ja net so schwer sein odeR? ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 01, 2004 13:49 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
In welcher Form sind die Geraden denn gegeben? Wenn die Gerade y=m*x+b ist, dann kann man damit natürlich keine senkrechten Geraden darstellen. Deshalb nimmt man dann besser die allgemeinere Form.

y=m*x+b <=> y-m*x=b
a1 wäre hier 1. b1 entspricht -m und das c1 ist das b.

Wenn die beiden Geraden so aussehen wie du das beschrieben hast, kann man das so machen:

y=m1*x+b1
y=m2*x+b2

gleichsetzen:
m1*x+b1=m2*x+b2
b1-b2=m2*x-m1*x
b1-b2=x*(m2-m1)

x=(b1-b2)/(m2-m1)

Das x dann noch in einer der Geraden einsetzen:
y=m2*(b1-b2)/(m2-m1)+b2


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 01, 2004 16:24 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Wobei meine Strecke auf jeden Fall Senkrecht sein kann... genauso, wie sie Waagerecht sein kann.

Also muss ich deiner Formel nachgehen, wo ich das <=> nicht verstehe... muss ich da auch auf y umstellen und gleichsetzen ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 01, 2004 16:40 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Wenn die Strecke auch senkrecht sein kann, dann kommst du mit der Steigungsform: y=mx+b nicht weiter.
Dann nimmst du am besten einen Startpunkt und eine Richtung pro Geraden so wie ich es da oben gemacht habe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 01, 2004 16:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Richtung.x und .y
Mh, das ist sozusagen, der x und der y wert eines 2ten punktes ?
Denn das kann ja keine Grad° Zahl sein.
dann setz ich sie wieder gleich, klammer x aus und .... schon hab ich x?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 01, 2004 17:08 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
2 Punkte durch die die Gerade geht:
Gerade1: p1.x,p1.y und p2.x,p2.y
Gerade2: q1.x,q1.y und q2.x,q2.y

Richtung1.x:=p2.x-p1.x;
Richtung1.y:=p2.y-p1.y;

Richtung2.x:=q2.x-q1.x;
Richtung2.y:=q2.y-q1.y;

Das ganze eingesetzt:

a1:=p2.y-p1.y;
b1:=p1.x-p2.x;
c1:=a1*p1.x+b1*p1.y;

a2:=q2.y-q1.y;
b2:=q1.x-q2.x;
c2:=a2*q1.x+b2*q1.y;

Der Schnittpunkt ist dann:

s.x:=(c1*b2-c2*b1)/(a1*b2-a2*b1)
s.y:=(a1*c2-a2*c1)/(a1*b2-a2*b1)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 25 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]