다음 기능을 다양한 언어로 어떻게 구현할 수 있습니까?
(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 );
a
초보자가 이해하는 나를 위해 정말 열심히했다 - 라디안에 있어야합니다.