sacar perimetro diametro como circunferencia circulo calcular algorithm math trigonometry

algorithm - perimetro - ¿Cómo calculo un punto en la circunferencia de un círculo?



perimetro de un circulo (3)

Esta pregunta ya tiene una respuesta aquí:

¿Cómo se puede implementar la siguiente función en varios idiomas?

Calcule el punto (x,y) en la circunferencia de un círculo, dados los valores de entrada de:

  • Radio
  • Ángulo
  • Origen (parámetro opcional, si es compatible con el idioma)

¿Quién necesita trigonometría cuando tienes números complejos ?

#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 ) ); }


Aquí está mi implementación en 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); }


La ecuación paramétrica para un círculo es

x = cx + r * cos(a) y = cy + r * sin(a)

Donde r es el radio, cx, cy el origen y a el ángulo.

Es bastante fácil de adaptar a cualquier lenguaje con funciones trigonométricas básicas. Tenga en cuenta que la mayoría de los lenguajes usarán radians para el ángulo en las funciones trigonométricas, por lo que en lugar de completar un ciclo de 0..360 grados, está cambiando a través de 0..2PI radianes.