Как вычислить точку на окружности круга? [дубликат]
этот вопрос уже есть ответ здесь:
- Вычисление точки на окружности окружности от угла в C#? 6 ответов
как можно реализовать следующую функцию на разных языках?
вычислить (x,y)
точка на окружности круга, заданные входные значения оф:
- радиус
- угол
- Origin (необязательный параметр, если поддерживается языком)
3 ответа:
на параметрическое уравнение для круга - это
x = cx + r * cos(a) y = cy + r * sin(a)
здесь r - это радиус, cx, cy происхождение, и a угол.
Это довольно легко адаптироваться к любому языку с основными тригонометрическими функциями. обратите внимание, что большинство языков будут использовать радианс для угла в тригонометрических функциях, поэтому вместо циклического прохождения через 0..360 градусов, вы едете на велосипеде через 0..2Пи Радиан.
вот моя реализация в C#:
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); }
кому нужна тригонометрия, когда у вас есть комплексные числа:
#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 ) ); }