Рейтинг:
21
CPallini
Предположим, что у вас есть
-------------------------------------
| P2={X2,Y2}
| /
| /
| /
| /
| /
| / alpha
| / .............
| P1={X1,Y1}
|
Затем
math.atan2(Y2-Y1,X2-X1)
дает вам возможность
alpha
угол. Все остальные затем просто вычисляются.
Sergey Alexandrovich Kryukov
5ед. :-)
—СА
Рейтинг:
2
SRD14
This works perfectly for me
const double Rad2Deg = 180.0 / Math.PI;
const double Deg2Rad = Math.PI / 180.0;
/// <summary>
/// Calculates angle in radians between two points and x-axis.
/// </summary>
private double Angle(Point start, Point end)
{
return Math.Atan2(start.Y - end.Y, end.X - start.X) * Rad2Deg;
}
Richard Deeming
С помощью Atan2
это уже было объяснено в решении 1 еще в 2014 году.
И ваш метод не соответствует собственным комментариям. В комментариях утверждается, что возвращаемое значение выражено в радианах, но возвращаемое значение - в градусах.
Рейтинг:
0
OriginalGriff
Если у вас есть X и Y каждой границы, то у вас есть X и Y каждой из четырех линий, составляющих квадрат.
Так что вычислить угол легко: школьная геометрия.
Возьмите один из углов - верхний правый в вашем примере.
Вы знаете координаты линии, которая является частью квадрата: P1 и P2, поэтому вы знаете разницу в координатах X: P2.X - P1.X
Это позволяет сделать прямоугольный треугольник, где вы знаете гипотенузу (от Пифагора на P1 и P2) и длины соседних линий ( разница в координатах X).
Таким образом, вы можете просто решить угол:
Тета = Cos-1(Ч)
Ты все это обсуждал на уроке математики, когда тебе было сколько? 12? :смех:
Zhivko Kabaivanov
Нет, мне 24 года.
OriginalGriff
Я не говорил, что это не так: я сказал, что они научили тебя этому 12 лет назад, когда тебе было 12 лет! :смех:
Zhivko Kabaivanov
АРК Кос в 5-м классе, ты серьезно ?!
OriginalGriff
Вы хотите сказать, что не поняли этого?
Чему же тебя учат в наши дни? :смеяться:
Zhivko Kabaivanov
http://translate.google.com/translate?hl=en&sl=auto&tl=en&u=http%3A%2F%2Fwww.bgtest.eu%2F%3Ff%3Dtest%26test_id%3D46
Это тест для учеников 5-го класса.