Как вычислить точку на окружности окружности?
Как можно реализовать следующую функцию на разных языках?
Рассчитайте точку (x,y)
на окружности круга, учитывая входные значения:
- Radius
- Угол
- Происхождение (необязательный параметр, если поддерживается языком)
Ответы
Ответ 1
Параметрическое уравнение для круга
x = cx + r * cos(a)
y = cy + r * sin(a)
Где r - радиус, cx, cy - начало координат, a - угол.
Это довольно легко адаптироваться к любому языку с основными функциями триггера. Обратите внимание, что большинство языков будут использовать радиан для угла в триггерных функциях, поэтому вместо того, чтобы ездить на велосипеде через 0..360 градусов, вы едете на велосипеде через 0..2PI радианы.
Ответ 2
Вот моя реализация в С#:
public static PointF PointOnCircle(float radius, float angleInDegrees, PointF origin)
{
// Convert from degrees to radians via multiplication by PI/180
float x = (float)(radius * Math.Cos(angleInDegrees * Math.PI / 180F)) + origin.X;
float y = (float)(radius * Math.Sin(angleInDegrees * Math.PI / 180F)) + origin.Y;
return new PointF(x, y);
}
Ответ 3
Кому нужен триггер, если у вас комплексные номера:
#include <complex.h>
#include <math.h>
#define PI 3.14159265358979323846
typedef complex double Point;
Point point_on_circle ( double radius, double angle_in_degrees, Point centre )
{
return centre + radius * cexp ( PI * I * ( angle_in_degrees / 180.0 ) );
}