Как получить размер повернутого прямоугольника [дубликат]

9
задан Community 23 May 2017 в 12:09
поделиться

7 ответов

a = abs(x * sin(o)) + abs(y * cos(o))
b = abs(x * cos(o)) + abs(y * sin(o))
35
ответ дан 4 December 2019 в 06:26
поделиться

Для прямоугольника, выровненного по оси повернутого прямоугольника, вы найдете минимум и максимум каждой из 4 повернутых координат. MinX и minY становятся одним углом, а maxX и maxY становятся другим углом.

0
ответ дан 4 December 2019 в 06:26
поделиться

Вычислить площадь исходного прямоугольника. Площадь при вращении не меняется.

-1
ответ дан 4 December 2019 в 06:26
поделиться

Используйте [Калькулятор площади треугольника по формуле Герона] s = (a + b + c) / 2 или 1/2 периметра треугольника

A = SquareRoot(s * (s - a) * (s - b) * (s - c))

Где

a=SquareRoot((X1-X2)^2+(Y1-Y2)^2)  [Side 1 Length]
b=SquareRoot((X1-X3)^2+(Y1-Y3)^2)  [Side 2 Length]
c=SquareRoot((X2-X3)^2+(Y2-Y3)^2)  [Side 3 Length]

X1,Y1,X2,Y2,X3,Y3 - координаты любых трех точек (углов)

RectangleArea=2*A

Или напрямую без [Heron's Formula Triangle Area Calculator], здесь важна последовательность точек.

P1----P2
|     |
P3----P4

 a=SquareRoot((X1-X2)^2+(Y1-Y2)^2)  [Side 1 Length]
 b=SquareRoot((X1-X3)^2+(Y1-Y3)^2)  [Side 2 Length]
 RectangleArea=a*b
-1
ответ дан 4 December 2019 в 06:26
поделиться

Это немного сложно, но для прямоугольника, Площадь = b * h = длина * ширина.

-3
ответ дан 4 December 2019 в 06:26
поделиться

Ну, вы не дали много деталей. Я предполагаю, что вы знаете, что высота и ширина прямоугольника дадут вам площадь независимо от вращения. Если у вас есть только точки данных x,y, то вы используете sqrt((x1-x1)^2 + (y1-y2)^2). Для получения длины стороны.

Вы уточнили свой вопрос, поэтому если у вас есть прямоугольник и вы знаете, что угол от верхнего левого угла повернут от вершины так, что левая сторона выглядит следующим образом.
  /
/
a = sine(alpha)*width
b = косинус(альфа)*ширина
c = синус(альфа)*высота
d = косинус(альфа)*высота

ширина = a + d
высота = b + c
Убедитесь, что вы правильно указали угол, здесь это трудно объяснить. Если вы получите другой угол, то получится
ширина = b + c
высота = a + d

2
ответ дан 4 December 2019 в 06:26
поделиться

Чтобы построить выровненную по оси ограничивающую рамку, нужно найти крайние точки повернутой рамки. то есть,

задан прямоугольник «P», заданный точками P1 = (0,0), P2 = (x, 0), P3 (x, y), P4 (0, y), повернутыми на «R» градусов ; найти minX, maxX, minY, maxY, так что прямоугольник [(minX, minY), (maxX, maxY)] полностью ограничивает повернутую букву «P».

                          +-------P3'----+maxY
                          |     /    \   |
  P4------P3              |   /        \ |
   |      |    rotate     | /            P2'
   |      | => by 'R' =>  P4'           /|
   |      |    degrees    | \         /  |
  P1------P2              |   \     /    |
                          |     \ /      |
                          +-----P1'------+minY
                         minX           maxX

Значения для ограничивающей рамки - это минимум / максимум компонентов повернутых точек P1 '.. P4'; таким образом,

minX=min(P1'[x],P2'[x],P3'[x],P4'[x])
maxX=max(P1'[x],P2'[x],P3'[x],P4'[x])
minY=min(P1'[y],P2'[y],P3'[y],P4'[y])
maxY=max(P1'[y],P2'[y],P3'[y],P4'[y])

Для обсуждения двумерных вращений см. http://en.wikipedia.org/wiki/Transformation_matrix#Rotation

6
ответ дан 4 December 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: