일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- PostgreSQL
- PySpark
- math
- array
- 파이썬
- google apps script
- PANDAS
- SQL
- Python
- matplotlib
- django
- Mac
- Kotlin
- c#
- dataframe
- Google Excel
- string
- gas
- Java
- hive
- GIT
- list
- Apache
- Google Spreadsheet
- Github
- Tkinter
- Redshift
- numpy
- Excel
- Today
- Total
달나라 노트
C# : DrawEllipse, Pen (타원 그리기, 그림 그리기, 도형 그리기) 본문
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들은 아래 링크에서 참고할 수 있습니다.
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
'C# > C#' 카테고리의 다른 글
C# : Clipping (Clip, GraphicsPath) (0) | 2022.04.15 |
---|---|
C# : List (0) | 2022.04.11 |
C# : MouseEventArgs, MouseEventHandler (마우스 포인터 위치) (1) | 2022.04.08 |
C# : Bitmap, GetPixel, ToArgb, FromArgb, SetPixel (이미지 다루기, 색상 다루기, ARGB 변환, Color 변환) (0) | 2022.04.07 |
C# : &, |, ^, ~ (비트 논리곱, 비트 논리합, 비트 상호배제, 비트 부정) (0) | 2022.04.07 |