달나라 노트

C# : DrawEllipse, Pen (타원 그리기, 그림 그리기, 도형 그리기) 본문

C#/C#

C# : DrawEllipse, Pen (타원 그리기, 그림 그리기, 도형 그리기)

CosmosProject 2022. 4. 8. 22:28
728x90
반응형

 

 

 

DrawEllipse method는 Form에 원/타원을 그릴 수 있도록 해줍니다.

여기서 말하는 원/타원이란 속이 비어있는 원/타원을 의미합니다.

(속이 채워진 원/타원은 FillEllpse method를 사용해야 합니다.)

 

 

 

Pen class는 도형을 그릴 때 사용할 색상, 굵기 등의 속성을 가진 펜 객체를 생성할 수 있습니다.

 

아래 코드는 Window의 특정 위치에 타원을 그리는 코드입니다.

 

using System;
using System.Windows.Forms;
using System.Drawing;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        void fm_paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            Pen pen = new Pen(Color.Black);

            g.DrawEllipse(pen, 150, 100, 10, 20);
        }
        fm.Paint += new PaintEventHandler(fm_paint);


        Application.Run(fm);
    }
}

 

위 코드를 실행하면 아래와 같은 Window가 뜹니다.

 

 

 

DrawEllipse method가 사용된 부분을 봅시다.

 

        void fm_paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            Pen pen = new Pen(Color.Black);

            g.DrawEllipse(pen, 150, 100, 10, 20);
        }
        fm.Paint += new PaintEventHandler(fm_paint);

DrawEllipse method는 Graphics 객체에 속해있는 method입니다.

Graphics는 PaintEventArgs를 통해서 다뤄야하므로 위처럼 PaintEvent method를 생성합니다. (method이름은 fm_paint로 정했는데 원하는 이름으로 바꿔도 됩니다.)

 

- Graphics g = e.Graphics;

먼저 PaintEventArgs인 변수 e로부터 Graphics class를 불러와서 Graphics 객체를 생성합니다.

 

 

- Pen pen = new Pen(Color.Black);

도형을 그릴 때 사용할 Pen 객체를 생성합니다.

Pen class는 사용할 색을 parameter로 받습니다. 위 예시에서는 검은색으로 했습니다.

 

 

- g.DrawEllipse(pen, 150, 100, 10, 20);

Graphics 객체(g)의 DrawEllipse method를 이용해서 타원을 그립니다.

 

Syntax - DrawEllipse

DrawEllipse(Pen_obj, X, Y, width, height)

DrawEllipse method의 Syntax는 위와 같습니다.

Pen_obj = Pen 객체를 받습니다.

X = 타원 중심의 X좌표를 의미합니다.

Y = 타원 중심의 Y좌표를 의미합니다.

width = 타원의 가로 길이를 의미합니다.

height = 타원의 세로 길이를 의미합니다.

 

 

 

 

 

DrawEllipse method를 포함한 다양한 도형그리기 method들은 아래 링크에서 참고할 수 있습니다.

https://docs.microsoft.com/ko-kr/dotnet/api/system.drawing.graphics.drawellipse?view=dotnet-plat-ext-6.0 

 

Graphics.DrawEllipse 메서드 (System.Drawing)

좌표, 높이, 너비의 쌍으로 지정된 경계 사각형에 의해 정의되는 타원을 그립니다.

docs.microsoft.com

 

 

 

 

 

 

 

 

 

using System;
using System.Windows.Forms;
using System.Drawing;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        void fm_paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            Pen pen = new Pen(Color.FromArgb(255, 0, 0, 0), 2);

            g.DrawRectangle(pen, 150, 100, 10, 20);
        }
        fm.Paint += new PaintEventHandler(fm_paint);


        Application.Run(fm);
    }
}

Pen 객체는 위처럼 2개의 인자를 받을 수 있습니다.

- Pen(Color_obj, 두께)

위 예시에서는 두께를 5로 설정해서 아래 이미지처럼 두께가 두껍게 그려진 것을 볼 수 있습니다.

 

또한 Color_obj는 Color.Black 등을 사용해도 되지만

Color.FromArgb() method를 사용해서 직접 ARGB값을 지정할 수 있습니다.

 

 

Pen 객체 관련 내용은 아래 링크에서 더 자세한 내용을 알 수 있습니다.

https://docs.microsoft.com/ko-kr/dotnet/api/system.drawing.pen?view=dotnet-plat-ext-6.0 

 

Pen 클래스 (System.Drawing)

선과 곡선을 그리는 데 사용되는 개체를 정의합니다. 이 클래스는 상속될 수 없습니다.

docs.microsoft.com

 

 

 

 

 

 

728x90
반응형
Comments