Programmieren - alles kontrollieren 4.937 Themen, 20.662 Beiträge

Dreieckspeilung.

Synthetic_codes / 13 Antworten / Flachansicht Nickles

Hi. Ich suche einen Algorithmus, mit dem ich eine Dreieckspeilung berechnen kann. folgendes: wir haben ein koordinatensystem mit X=1000m
Y=1000m
wir haben drei sender A(250|250),B(640|480),C(250|700)
Die sender stehen also in einem gleichwinkligen dreieck zueinander in der entfernung |AC| = |AB| = |BC| = 450m
ich habe einen Punkt T(?|?) der von A 250m von B 200m und von C 365m entfernt ist. wie berechne ich die koordinaten des Punktes T der im dreieck ABC steht??

Vielen Dank für die Hilfe schonmal im vorraus, ich weiss dass es eine Extrem schwere Aufgabe ist.

mailto: Synthetic_codes@yahoo.de

'); DROP TABLE users;--
bei Antwort benachrichtigen
Borlander Synthetic_codes „Dreieckspeilung.“
Optionen

Hallo synthetic_codes,
die notwenige Fromel kann man relativ einfach selbst herleiten:

A(250|250),B(640|480),C(250|700)

a(A, T) = 250LE
a(A, T) = 200LE
a(A, T) = 365LE




d(A, T) = SQRT((ax-tx)2+(ay-ty)2)
d(B, T) = SQRT((bx-tx)2+(by-ty)2)
d(C, T) = SQRT((cx-tx)2+(cy-ty)2)

<=>
(d(A, T))2 = (ax-tx)2+(ay-ty)2
(d(B, T))2 = (bx-tx)2+(by-ty)2
(d(C, T))2 = (cx-tx)2+(cy-ty)2

<=>
(d(A, T))2 = ax2-2axtx+tx2 + ay2-2ayty+ty2
(d(B, T))2 = bx2-2bxtx+tx2 + by2-2byty+ty2
(d(C, T))2 = cx2-2cxtx+tx2 + cy2-2cyty+ty2

<=>
(d(A, T))2 = ax2-2axtx+tx2 + ay2-2ayty+ty2
(d(B, T))2-(d(A, T))2 = bx2-2bxtx+tx2 + by2-2byty+ty2 - (ax2-2axtx+tx2 + ay2-2ayty+ty2)
(d(C, T))2-(d(A, T))2 = cx2-2cxtx+tx2 + cy2-2cyty+ty2 - (ax2-2axtx+tx2 + ay2-2ayty+ty2)

<=>
(d(A, T))2 = ax2-2axtx+tx2 + ay2-2ayty+ty2
(d(B, T))2-(d(A, T))2 = bx2-2bxtx + by2-2byty - (ax2-2axtx + ay2-2ayty)
(d(C, T))2-(d(A, T))2 = cx2-2cxtx + cy2-2cyty - (ax2-2axtx + ay2-2ayty)

Jetzt brauchen wir nur noch zwei Gleichungen (II & III) zum Weiterrechenn, mit der 3. (I) kann überprüft werden ob die Lösung richtig ist (die Kombination der 3 Entfernungen zu einander passt).

(d(B, T))2-(d(A, T))2 = bx2 -2bxtx +by2 -2byty -ax2 +2axtx -ay2 +2ayty
(d(C, T))2-(d(A, T))2 = cx2 -2cxtx +cy2 -2cyty -ax2 +2axtx -ay2 +2ayty

<=>
(d(B, T))2-(d(A, T))2 = -2bxtx +2axtx -2byty +2ayty  +  bx2 +by2 -ax2 -ay2
(d(C, T))2-(d(A, T))2 = -2cxtx +2axtx -2cyty +2ayty  +  cx2 +cy2 -ax2 -ay2

<=>
(d(B, T))2-(d(A, T))2 = 2tx(ax-bx)+2ty(2ay-by)  +  bx2 +by2 -ax2 -ay2
(d(C, T))2-(d(A, T))2 = 2tx(ax-cx)+2ty(2ay-cy)  +  cx2 +cy2 -ax2 -ay2

Dann noch eine der Gleichungen zu tx auflösen und in die Andere einsetzen, so das erst ty und anschliend tx gelöst werden kann - dann hast Du die notwendige Formel. Das sollte extrem einfach sein...
Mit der Formel I kann anschließen Geprüft werden ob die Angaben stimmen (wahre Aussage), die Anordnung der Punkte ABC ist dabei unerheblich.


CU Borlander
bei Antwort benachrichtigen
Dreieckspeilung. Synthetic_codes