cmmIxArc3PStart


SYNOPSIS

VT_I4 cmmIxArc3PStart(
    [in] VT_I4 MapIndex, [in] VT_R8 P2X, [in] VT_R8 P2Y, [in] VT_R8 P3X, [in] VT_R8 P3Y,
    [in] VT_R8 EndAngle
    )

DESCRIPTION

  • 본 함수는 원호의 중심점 및 종점 좌표를 사용하는 cmmIxArcPStart(상대 좌표) 또는 cmmIxArcPToStart (절대 좌표) 함수와는 달리 현재 좌표(1 차)를 포함해서 2 차 및 3 차 좌표의 총 3 개의 (X, Y) 순서쌍 좌표를 사용해서 원호 보간을 수행합니다. 결과적으로 세 점을 지나게 되므로 중심점은 자동으로 결정됩니다. 또한 함수 이름이 ‘Start’ 로 끝나므로 함수 내부에서 이송 완료시까지 기다리지 않고 이송 작업만 시작시킨 뒤 바로 반환 됩니다. 따라서 cmmIxWaitDone 함수와 함께 사용하셔야 이송 완료 체크를 하실 수 있습니다.

PARAMETER

  • MapIndex : 맵번호(Map index), 이 맵번호를 사용하기전에 먼저 cmmIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑되어 있어야 합니다.

  • VT_R8P2X : 원호가 지나는 2 번째 점의 X 좌표 입니다.

  • VT_R8P2Y : 원호가 지나는 2 번째 점의 Y 좌표 입니다.

  • VT_R8P3X : 원호가 지나는 3 번째 점의 X 좌표 입니다.

  • VT_R8P3Y : 원호가 지나는 3 번째 점의 Y 좌표 입니다

  • EndAngle : 중심점과 출발점을 잇는 선분이 중심점과 종점을 잇는 선분과 이루는 각도를 의미 합니다.

Value

Meaning

0도

3번째 점에서 보간 이송 완료 하도록 설정. 이 경우 종점도 3번째 점이 됩니다.

0 도 초과 360도 이하
현재 좌표(1 번째), 2 번째 및 3 번째를 지나 중심점으로부터 해당 각도 만큼
원호 보간 이송이 수행됩니다.
단 각도가 2 번째 또는 3 번째 점을 지나기에 모자라는 경우는 해당 각도
까지만 그려지고 2 번째 및 3 번째 점은 지나지 않게 됩니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

cmERR_NONE

수행 성공

REFERENCE

Note

이 함수 사용 시 현재 좌표를 포함한 3 개의 점이 거의 직선에 가깝게 설정되는 경우는 사실상 지름이 무한대 거나 상당히 큰 원을 그려야 하는 문제가 발생하며, 이 경우는 함수 수행은 되고 반환값이 cmERR_NONE 이 되더라도 실제로는

제대로 이송이 안되고 원호 보간 이송에 실패할 수 있음에 유의해야 합니다.

EXAMPLE

  • 예제는 cmmIxArc3P를 참고해주세요.

See also

cmmIxArcP, cmmIxArcPTo, cmmIxArcPStart, cmmOxArcPToStart, cmmIxArc3P