gibt es eine Möglichkeit zwischen zwei (un)endlich langen Linien im 3D Raum den punkt zu errechnen an dem sie sich am nächsten sind? Ich habe zwei Linien (jeweils Anfangspunkt und Richtungsvektor) A und B. Ich möchte jetzt gern den punkt auf Linie B haben, an den Linie A am nächsten heran kommt.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Wenn die Funktion auch nur den nächsten Punkt zurückgibt (wie der docstring vermuten ließe), ist sie ganz schön irreführend benannt .
grüße
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Find ich nicht, sie gibt doch die Schnittstelle zurück? (...und zwar in der Form die die flexibelste Nutzung erlaubt) Eine ja/nein Entscheidung wäre in diesem Fall wenig hilfreich, da sich Linien in 3D so gut wie nie exakt schneiden. Aber ja...man hätte sie sicher sinnvoller benennen können...
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Naja, aber wenn ich zwei strahlen habe, die sich nirgendwo schneiden und nicht parallel sind, dann gibt es mir doch den nächsten Punkt zurück? Das ist nicht der Schnittpunkt (wenn der abstand größer ε ist meinetwegen), und von einer Funktion mit Intersect in Namen würde ich dann einen Rückgabewert erwarten, der das nicht-vorhandensein eines Schnittpunktes anzeigt.
grüße
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Du musst dann s und t jeweils wieder in die Geradengleichung einsetzen um den gewünschten Punkt zu berechnen.
Du überschätzt meine Mathematischen Kenntnisse... Geradengleichung hab ich schonmal in der Schule gehört, aber so spontan steh ich sehr auf dem schlauch - die lustigen Symbole bei Wikipedia dazu machen das nicht viel besser
Die Geradengleichung ist das was du in die Funktion stopfst. In der Schule wird das meist Stützpunkt S und Richtungsvektor R genannt. Also die Gerade sind alle Punkte die sich durch S + t*R beschreiben lassen, wobei t beliebige Werte annehmen darf. Dem Kommentar der Funktion kannst du entnehmen:
Code:
ao + s*ar
bo + t*br
Also du musst nur die Werte für s und t die dir die Funktion ausgibt wieder in die Geradengleichungen einsetzen und du bekommst die beiden am nächsten zueinander gelegenen Punkte.
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.