Um eine Achse-ausgerichtete Bounding-Box zu erstellen, muss man die Extrempunkte der gedrehten Box finden. d.h.,
gegeben ein Rechteck 'P', gegeben durch Punkte P1 = (0,0), P2 = (x, 0), P3 (x, y), P4 (0, y), gedrehte 'R' Grad; Finde minX, maxX, minY, maxY, so dass die Box [(minX, minY), (maxX, maxY)] das rotierte 'P' vollständig einschließt.
%Vor%Die Werte für die Bounding Box sind das Minimum / Maximum der Komponenten der gedrehten Punkte P1 '.. P4'; also,
%Vor%Eine Diskussion der 2D-Rotationen finden Sie unter Ссылка
Nun, du hast nicht viele Details angegeben. Ich nehme an, Sie wissen, dass die Höhe und Breite des Rechtecks Ihnen den Bereich unabhängig von der Rotation geben wird. Wenn Sie nur die Datenpunkte x, y haben, verwenden Sie sqrt((x1-x1)^2 + (y1-y2)^2)
. Um die Länge einer Seite zu erhalten.
Sie haben Ihre Frage geklärt. Wenn Sie also ein Rechteck haben, wissen Sie, dass der Winkel von der oberen linken Ecke weg von oben gedreht ist, so dass die linke Seite so aussieht.
/
/
a = Sinus (Alpha) * Breite
b = Kosinus (Alpha) * Breite
c = Sinus (Alpha) * Höhe
d = Kosinus (Alpha) * Höhe
Breite = a + d
Höhe = b + c
Seien Sie sicher, dass Sie den richtigen Winkel haben, es ist schwierig, hier etwas klarzustellen. Wenn du den anderen Winkel bekommst, dann wird es zum
kommen
width = b + c
Höhe = a + d
Für das mit der Achse ausgerichtete Feld des gedrehten Rechtecks finden Sie das Minimum und Maximum jeder der vier gedrehten Koordinaten. Die MinX und MinY werden 1 Ecke und die MaxX und MaxY wird die andere Ecke.
Verwenden Sie [Herons Formel-Dreieck-Bereichsrechner]
s = (a + b + c) / 2
oder 1/2 des Umfangs des Dreiecks
Wo
%Vor% X1,Y1,X2,Y2,X3,Y3
sind die Koordinaten von drei beliebigen Punkten (Ecken)
Oder direkt ohne [Heron's Formel Triangle Area Calculator], Reihenfolge der Punkte sind hier wichtig.
%Vor%Tags und Links geometry