Ich muss lokale Koordinaten von globalen Koordinaten erhalten. Ich habe keine fertigen Beispiele gefunden.
Bitte helfen Sie mir, wie es auf dem Beispielbild geht. Vielen Dank!
AKTUALISIERT:
Hier ist die Methode in Java, die dank Ihrer Hilfe erstellt wurde! Es funktioniert bei mir :) Danke!
public static double[] getLocalFromGlobal(int pointX, int pointY, int localX, int localY, float angle) {
float px = pointX - localX;
float py = pointY - localY;
double cos = Math.cos((Math.PI / 180) * angle);
double sin = Math.sin((Math.PI / 180) * angle);
double finalX = (px * cos) + (py * sin);
double finalY = -(px * sin) + (py * cos);
return new double[]{finalX, finalY};
}
2d
mathematics
coordinates
Qulery
quelle
quelle
Antworten:
Der zu transformierende Punkt P ist in homogenen Koordinaten:
Die homogene Transformationsmatrix M ist (unter Verwendung von ) = sin ( :c o s (π4 π4) = 0,7071 )
unter Hinweis darauf, dass und und unter Verwendung der Identität in meiner Antwort hier bewiesen( 40 + 20 ) * 0,7071 = 42,426 ( 40 - 20 ) * 0,7071 = 14,142
Anwenden von M auf P mit Matrixmultiplikationsausbeuten
Beachten Sie, dass normale Vektoren, z. B. für Position und Geschwindigkeit, kontravarianten . Dies bedeutet, dass für eine Transformation T der Basisvektoren die Komponenten durch die inverse Transformation T * transformiert werden. Nur Doppelvektoren wie der Gradient sind co-variantenförmig, wobei ihre Komponenten durch T transformiert werden.
quelle