Arc

(x1,y1) 및 (x2,y2)에 모서리가 있는 Rectangle에 내접한 타원의 호를 그립니다. 호의 경계선는 타원의 중심에서 좌표 (x3,y3) 및 (x4,y4)를 사용하여 두 점까지 연장되는 선으로 잘립니다.

void  Arc(
   int         x1,      // Rectangle 좌측 상단 모서리의 X 좌표
   int         y1,      // Rectangle 좌측 상단 모서리의 Y 좌표
   int         x2,      // Rectangle의 우측 하단 모서리의 X 좌표
   int         y2,      // Rectangle 우측 하단 모서리의 Y 좌표
   int         x3,      // 호의 경계선을 찾기 위한 첫 번째 점의 X 좌표
   int         y3,      // 호의 경계선을 찾기 위한 첫 번째 점의 Y 좌표
   int         x4,      // 호의 경계선을 찾기 위한 두 번째 점의 X 좌표
   int         y4,      // 호의 경계선을 찾기 위한 두 번째 점의 Y 좌표
   const uint  clr      // 색상
   );

매개변수

x1

[in]  Rectangle을 이루는 좌측 상단 모서리의 X 좌표.

y1

[in]  Rectangle을 이루는 좌측 상단 모서리의 Y 좌표.

x2

[in]  Rectangle을 이루는 우측 하단 모서리의 X 좌표.

y2

[in]  Rectangle을 이루는 우측 하단 모서리의 Y 좌표.

x3

[in]  호의 경계선을 얻기 위해 Rectangle 중심에서 선이 그려지는 첫 번째 점의 X 좌표.

y3

[in]  호의 경계선을 얻기 위해 Rectangle 중심에서 선이 그려지는 첫 번째 점의 Y 좌표.

x4

[in]  호의 경계선을 얻기 위해 Rectangle의 중심에서 선이 그려지는 두 번째 점의 X 좌표.

y4

[in]  호의 경계선을 얻기 위해 Rectangle의 중심에서 선이 그려지는 두 번째 점의 Y 좌표.

clr

[in]  색상(ARGB 형식). 색상을 ARGB로 변환하려면 ColorToARGB() 기능을 사용합니다.

 

점 (x,y)에 중심으로, 반지름 rx 및 ry로 하는 타원의 호를 Rectangle에 내접하게 그립니다. 각 fi3 및 fi4로 형성된 레이를 사용하여 타원 중심에서 호 경계선을 자릅니다.

void  Arc(
   int         x,       // 타원 중심의 X 좌표
   int         y,       // 타원 중심의 Y 좌표
   int         rx,      // X 축 타원 반지름
   int         ry,      // Y 축 타원 반지름
   int         fi3,     // 호의 첫 번째 경계를 정의하는 타원의 중심에서 나오는 레이 각도
   int         fi4,     // 호의 두 번째 경계를 정의하는 타원의 중심에서 나오는 레이 각도,
   const uint  clr      // 색상
   );

점 (x,y)에 중심으로 하고, 반지름 rx 및 ry로 하는 Rectangle에 내접하는 타원의 호를 그리고, 호 경계선의 좌표를 반환. 각 fi3 및 fi4로 형성된 레이를 사용하여 타원 중심에서 호 경계선을 자릅니다.

void  Arc(
   int         x,       // 타원 중심의 X 좌표
   int         y,       // 타원 중심의 Y 좌표
   int         rx,      // X 축 타원 반지름
   int         ry,      // Y 축 타원 반지름
   int         fi3,     // 호의 첫 번째 경계를 정의하는 타원의 중심에서 나오는 레이 각도
   int         fi4,     // 호의 두 번째 경계를 정의하는 타원의 중심에서 나오는 레이 각도,
   int&        x3,      // 첫 번째 호 경계 X 좌표
   int&        y3,      // 첫 번째 호 경계 Y 좌표
   int&        x4,      // 두 번째 호 경계 X 좌표
   int&        y4,      // 두 번째 호 경계 Y 좌표
   const uint  clr      // 색상
   );

매개변수

x

[in]  타원 중심의 X 좌표.

y

[in]  차원 중심의 Y 좌표.

rx

[in]  X 축 타원 반지름(픽셀).

ry

[in]  Y 축 타원 반지름(픽셀).

fi3

[in]  호의 첫 번째 경계를 정의하는 각도(라디안).

fi4

[in]  호의 두 번째 경계를 정의하는 각도(라디안).

x3

[out] 첫 번째 호 경계의 X 좌표를 가져오는 변수.

y3

[out] 첫 번째 호 경계의 Y 좌표를 가져오는 변수.

x4

[out] 두 번째 호 경계의 X 좌표를 가져오는 변수.

y4

[out] 두 번째 호 경계의 Y 좌표를 가져오는 변수.

clr

[in]  색상(ARGB 형식). 색상을 ARGB로 변환하려면 ColorToARGB() 기능을 사용합니다.

호츨 클래스 메서드 예시:

#include <Canvas\Canvas.mqh>
CCanvas 캔버스;
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   int      Width=600;
   int      Height=400;
//--- 캔버스 생성
   if(!canvas.CreateBitmapLabel(0,0,"CirclesCanvas",30,30,Width,Height))
     {
      Print("캔버스 생성 오류: ",GetLastError());
     }
//--- 캔버스 비우기
   canvas.Erase(clrWhite);
//--- Rectangle 그리기
   canvas.Rectangle(215-190,215-120,215+190,215+120,clrGray);
//--- 첫 번째 호 그리기
   canvas.Arc(215,215, 190,120,M_PI_4,2*M_PI-M_PI_4,ColorToARGB(clrRed));
   int x1,y1,x2,y2;
//--- 두 번째 호 그리기
   canvas.Arc(215,215, 190,120,2*M_PI-M_PI_4,2*M_PI+M_PI_4,x1,y1,x2,y2,ColorToARGB(clrGreen));
//--- 호 좌표 인쇄
   PrintFormat("First point of arc at (%G,%G), second point of arc at (%G,%G)",x1,y1,x2,y2);
   canvas.CircleAA(x1,y1,3, ColorToARGB(clrRed));
   canvas.CircleAA(x2,y2,3, ColorToARGB(clrBlue));
//--- 업데이트된 캔버스 표시
   canvas.Update();   
  }