Wie bekomme ich die Größe eines gedrehten Rechtecks ​​[duplizieren]

8

Ich habe ein gedrehtes Rechteck, Also, wie berechne ich die Größe der Achse ausgerichtet Bounding Box für das gedrehte Rechteck in 2D-Koordinaten?

Bild anhängen Ссылка

ich weiß x, y, o (Winkel) aber wie bekomme ich a, b

Danke

    
Northern 12.07.2010, 18:36
quelle

7 Antworten

29
%Vor%     
Scott Evernden 12.07.2010, 19:10
quelle
5

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 Ссылка

    
eric 13.07.2010 05:25
quelle
1

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

    
qw3n 12.07.2010 18:57
quelle
0

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.

    
Michael Dorgan 12.07.2010 19:08
quelle
-1

Berechnen Sie die Fläche des ursprünglichen Rechtecks. Bereich ändert sich nicht unter Rotation.

    
JSBձոգչ 12.07.2010 18:39
quelle
-1

Verwenden Sie [Herons Formel-Dreieck-Bereichsrechner] s = (a + b + c) / 2 oder 1/2 des Umfangs des Dreiecks

%Vor%

Wo

%Vor%

X1,Y1,X2,Y2,X3,Y3 sind die Koordinaten von drei beliebigen Punkten (Ecken)

%Vor%

Oder direkt ohne [Heron's Formel Triangle Area Calculator], Reihenfolge der Punkte sind hier wichtig.

%Vor%     
Waleed A.K. 12.07.2010 18:46
quelle
-3

Es ist ein bisschen kompliziert, aber für ein Rechteck, Area = b * h = length * width .

    
tpdi 12.07.2010 18:41
quelle

Tags und Links