기존에는 화살표를 직접 그려야 되기 때문에,
삼각함수를 이용해 삼각형 좌표를 얻어와 그리게 되어있다.
그러나 GDI+에서는 Pen 객체에서 Line Caps 라는 것을 지원한다.

Pen pen(Color(255, 0, 0, 255), 8);
stat = pen.SetStartCap(LineCapArrowAnchor);
stat = pen.SetEndCap(LineCapRoundAnchor);
stat = graphics.DrawLine(&pen, 20, 175, 300, 175);

소스를 보면 알겠지만, 펜 자체의 형태를 구성해서 Line을 그릴때,
첫점과 끝점에 내용을 채워 넣을 수 있다. 다양한 형태의 Line 끝점을 설정하게 되는데, 그 나열자들을 보면..

LineCapFlat
라인 끝의 모양을 단순한 형태로 끝을 마무리 한다.

LineCapSquare
라인 끝 모양을 정사각형의 모양으로 마무리한다. 정사각형의  넓이와 높이는 라인의 넓이에서 결정된다.

LineCapRound
라인 끝을 둥글게 마무리한다. 라인의 반지름은 라인의 넓이에서 결정된다.

LineCapTriangle
라인 끝을 삼각형으로 만든다. 삼각형의 중심 높이는 라인의 넓이에서 결정된다.

LineCapNoAnchor
라인 끝에 아무것도 붙이지 않는다.

LineCapSquareAnchor
라인 끝에  정사각형의 모양을 붙인다. 이 때의 높이와 넓이는 라인의 넓이에 영향을 받게 된다.

LineCapRoundAnchor
라인 끝애 원을 붙인다. 원의 반지름은 라인의 넓이에 영향을 받는다.

LineCapDiamondAnchor
라인 끝에 다이어몬드 모양을 붙인다. 다이어몬드는 정사각형에서 45도 돌려서 구성한 형태를 의미한다. 정사각형 처럼 넓이는 라인의 넓이에 영향을 받게 된다.  단 정사각형에서 보다 라인의 넓이 보다 더 넓게 차지하게 된다.

LineCapArrowAnchor
라인 끝에 화살표를 붙인다.

LineCapCustom
라인 끝 자락에 사용자 정의형을 붙인다.



여기서 LineCapArrowAnchor를 사용하게 되면 화살표를 직접 만들어 붙일 필요가 없고 GDI+에서 알아서 붙여주게 된다 .
728x90

+ Recent posts