페인트 이벤트의 그래픽 개체를 사용하여 winforms 패널에 여러 줄을 그리려고합니다. 실제로 주어진 지점에 합류하는 여러 줄을 그리는 중입니다. 그래서, 우선 내가 이런 짓을, 아래 그림과 같은 결과를 생성 DrawLines 및 DrawLine을 사용하여 여러 줄을 그리면 다른 결과가 나타납니다.
private void panel1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLines(new Pen(new SolidBrush(Color.Crimson), 3), PointFs.ToArray());
float width = 10;
float height = 10;
var circleBrush = new SolidBrush(Color.Crimson);
foreach (var point in PointFs)
{
float rectangleX = point.X - width/2;
float rectangleY = point.Y - height/2;
var r = new RectangleF(rectangleX, rectangleY, width, height);
e.Graphics.FillEllipse(circleBrush, r);
}
}
,
당신이 선 날카로운에서 확장의 약간을 갖는 그려 볼 수 있듯이 턴이 예상되지 않습니다. 그래서 drawlines 코드를
var pen = new Pen(new SolidBrush(Color.Crimson), 3);
for (int i = 1; i < PointFs.Count; i++)
{
e.Graphics.DrawLine(pen, PointFs[i - 1], PointFs[i]);
}
으로 변경했습니다. 이제 그림이 잘 작동합니다.
사람은 두 가지 접근 방식의 차이를 말할 수 있습니까?