Получить положение точки на окружности окружности, учитывая угол?

13

Я хотел бы знать, как получить конкретную точку на окружности круга, учитывая угол. Диаметр круга равен 1, а центральная точка круга равна { X: 0.5, Y: 0.5 }.

Матиас Ликкегор Лоренцен
источник

Ответы:

23

Вы можете решить это, используя базовую тригонометрию. http://www.freehomeworkmathhelp.com/Trigonometry/Trigonometry_Introduction/trigonometry.html

Tan(angle) = Opposite / Adjacent
Sin(angle) = Opposite / Hypotenuse
Cos(angle) = Adjacent / Hypotenuse

Я всегда помню как

The Old Arab
Sat On His
Camel And Howled

Вышеуказанное означает, что если у нас есть угол и одна длина прямоугольного треугольника, мы можем определить длины других сторон. К счастью, ваша проблема может рассматриваться как вычисление длины сторон треугольника:

Круг треугольник изображение

Выше r - гипотенуза, x - соседний, а y - противоположный.

Итак, для х:

Cos(a) = x / r
Cos(a) * r = x
x = Cos(a) * r

И для тебя:

Sin(a) = y / r
Sin(a) * r = y
y = Sin(a) * r

Предполагается, что круг в точке (0, 0), поэтому мы просто добавляем центр круга.

radius = 1;
CenterX = 0.5;
CenterY = 0.5;

x = Cos(angle) * radius + CenterX;
Y = Sin(angle) * radius + CenterY;

Примечание: математические функции C # используют углы в радианах, поэтому, если у вас есть градусы, сначала преобразуйте их:

radians = degrees * Math.PI / 180
Джордж Дакетт
источник
1
Имейте в виду, что угол должен быть в радианах.
bummzack
Зависит от математической библиотеки, но хороший момент, XNA / .Net использует радианы.
Джордж Дакетт
Почему старый араб был выть? Здесь мы не все говорим по-английски, так что концептуальное мемоническое правило намного лучше, чем мнемоническое предложение
FxIII
1
@FxIII: Правда, это не самая популярная мелодика, однако мне всегда было легче ее запомнить, чем SOHCAHTOA, поскольку она необычна.
Джордж Дакетт
Или вы можете просто посмотреть, как только вы знакомы с концепцией, раз или два в год, что вам нужно.
Тетрад