Winkel zwischen den Punkten?

Habe ich ein Dreieck (A, B, C) und bin auf der Suche nach der Winkel zwischen jeweils zwei der drei Punkte.

Das problem ist, dass die algorithmen, die ich online finden kann, sind für die Bestimmung der Winkel zwischen Vektoren. Mit Vektoren würde ich berechnen Sie den Winkel zwischen den Vektoren, die von (0, 0) zum Punkt ich habe, und das bedeutet nicht, geben Sie mir die Winkel innerhalb des Dreiecks.

OK, hier ist etwas code in Python nach der Methode auf der Wikipedia-Seite und nach Subtraktion der Werte:

import numpy as np
points = np.array([[343.8998, 168.1526], [351.2377, 173.7503], [353.531, 182.72]])

A = points[2] - points[0]
B = points[1] - points[0]
C = points[2] - points[1]

for e1, e2 in ((A, B), (A, C), (B, C)):
    num = np.dot(e1, e2)
    denom = np.linalg.norm(e1) * np.linalg.norm(e2)
    print np.arccos(num/denom) * 180

Gibt, die mich 60.2912487814, 60.0951900475 und 120.386438829, also was mache ich falsch?

  • Wie ist dein Dreieck dargestellt? 3 paar (x,y) Koordinaten?
  • ja, einfach so. @peter ich will einfach nur einen Algorithmus verwenden, so können Sie java - /c++ - synthax oder python. ich verstehe beide
  • Ist das tatsächlich eine Frage der Programmierung? Nach ein paar source-code, ansonsten gehört dies auf math.stackexchange.com
  • Der Vektor von einem Punkt X zu einem anderen Punkt Y ist Y-X
  • Was meinst du mit angles inside the triangle ?
  • ich habe versucht, aber hat nicht die erwarteten Ergebnisse erhalten. obwohl die Punkte, die ich verwende sind alle positiv und so Sie fallen erst auf den ersten Quadranten, also vielleicht habe ich einen Fehler gemacht. hmm.
  • B-A & C-A gibt zwei Vektoren. Und das Skalarprodukt zwischen Ihnen gibt den Winkel.

InformationsquelleAutor luct | 2011-02-25
Schreibe einen Kommentar