원형 경로에서 객체 이동


26

원형 경로에서 하나의 객체 (점)를 이동하고 싶습니다. 이를 위해 X 및 Y 좌표를 어떻게 변경해야합니까?

답변:


54

간단한 수학을 사용하여 그렇게 할 수 있습니다.

X := originX + cos(angle)*radius;
Y := originY + sin(angle)*radius;

(originX, originY) 는 원의 중심입니다. 반경 은 반경입니다. 그게 다야.

이것은 사인과 코사인이 수학적으로 단위 원과 관련되어 있기 때문에 작동합니다 .

사인과 코사인과 단위 원의 관계
이미지 제공 : LucasVB (자작) [공개 도메인, 위키 미디어 공용 통해 . (70 %로 축소)


타원형이면 어떻게 되나요? 즉, 설정된 반경이 없습니다.
테스트

2
@test : 타원이 X 또는 Y 방향 인 경우 해당 축 위치에 추가 계수를 곱할 수 있습니다. 더 자세한 정보가 필요하면 별도의 질문을해야합니다.
크롬 스터, 모니카

@Anko : 애니메이션이 더 잘 설명한다고 생각하지는 않지만 그것을 필요로하는 사람들에게는 그렇게하십시오. CW로 변환되었습니다.
크롬 스터, 모니카

@Kromster 3D 공간에서 동일한 결과를 얻는 것은 어떻습니까?
Tomas

14

Krom으로 표시된 파라 메트릭 방정식을 사용할 수 있습니다. 우리가 왜이 공식을 사용했는지 이해하려면 방정식이 무엇인지 이해해야합니다. 이 방정식은 파라 메트릭 circle of circle 에서 파생됩니다 .

아래 다이어그램에 표시된대로 원점이 중심 (O)으로 그려진 원을 고려합니다. 원

반지름이 r 인 원의 원주에 "p"점을 찍으면

OP (Origin to p)의 각도를 θ로 설정하십시오. x 축에서 p의 거리를 y로 지정 y 축에서 p의 거리를 x로 설정

위의 가정을 사용하여 아래와 같이 삼각형을 얻습니다. 삼각형

이제 우리는 cos θ = base / hypotenuse 이고 sin θ = vertical / hypotenuse

이것은 우리에게 cos θ = x / rsin θ = y / r을줍니다

:: x = r * cos θ 및 y = r * sin θ

그러나 원이 원점이 아니고 (a, b)에 있다면 원의 중심이 이동되었다고 말할 수 있습니다

x 축의
단위 b 축의 y 축 단위
이러한 원에 대해 x와 y 축에 시프트를 추가하여 그에 따라 매개 변수 방정식을 변경할 수 있습니다.

x = a + (r * cos θ)
y = b + (r * sin θ)


여기서 a & b는 원 중심의 x, y 좌표입니다.

따라서 우리는 x와 y가 반지름 r을 갖는 원의 원주에서 점의 좌표를 발견했습니다.


2
감사합니다,이 문제에 대한 정말 좋고 간단한 답변은
거절

5

sin (x + a) 및 cos (x + a) 수식을 사용하고 sin (a) 및 cos (a)를 계산할 수있는 또 다른 트릭이 있습니다.이 각도는 이동하려는 각도입니다. 현재 위치에서 한 번만 가능하며 각 단계에서 곱셈과 덧셈을 수행하십시오.

sin (x + a) = sin (x) * cos (a) + cos (x) * sin (a), iirc.

물론, 그것은 일정한 각속도를 가정합니다.

그러나 제한된 산술 정밀도에주의하십시오. 과거의 "원형"모션은 시간이 지남에 따라 가끔 반올림되는 결과로 나선을 그리는 방식으로 구현되었습니다. 각 회전 후 위치를 (x0, y0)으로 재설정해야 할 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.