태그 보관물: math

math

원 주위의 한 점을 어떻게 계산합니까? 있습니까? (x,y)다음과 같은 입력 값이

다음 기능을 다양한 언어로 어떻게 구현할 수 있습니까?

(x,y)다음과 같은 입력 값이 주어지면 원 주위의 점을 계산하십시오 .

  • 반지름
  • 각도
  • 원점 (언어에서 지원하는 경우 선택적 매개 변수)


답변

모수 방정식

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

여기서 r은 반경이며, CX는 CY 원점 및 각도.

기본 삼각 함수를 사용하여 모든 언어에 쉽게 적응할 수 있습니다. 대부분의 언어는 삼각 함수에서 각도에 라디안 을 사용 하므로 0..360도를 순환하는 대신 0..2PI 라디안을 순환합니다.


답변

다음은 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 ) );
}


답변

JavaScript (ES6)로 구현 :

/**
    * Calculate x and y in circle's circumference
    * @param {Object} input - The input parameters
    * @param {number} input.radius - The circle's radius
    * @param {number} input.angle - The angle in degrees
    * @param {number} input.cx - The circle's origin x
    * @param {number} input.cy - The circle's origin y
    * @returns {Array[number,number]} The calculated x and y
*/
function pointsOnCircle({ radius, angle, cx, cy }){

    angle = angle * ( Math.PI / 180 ); // Convert from Degrees to Radians
    const x = cx + radius * Math.cos(angle);
    const y = cy + radius * Math.sin(angle);
    return [ x, y ];

}

용법:

const [ x, y ] = pointsOnCircle({ radius: 100, angle: 180, cx: 150, cy: 150 });
console.log( x, y );

코드 펜


답변