2012-09-08 2 views
2

저는 C#/GDI +로 만든 페인트 프로그램을 사용하여 패널에서 서로 다른 색상과 펜 크기로 다른 모양을 그립니다. 나는 셰이프 드로잉 메서드를 OK로 작동시키지 만 무료 펜을 사용할 때 (MS Paint에서와 같이) 필자는 작업을 수행하는 메서드를 만들었고 그냥 못 생겼다.C# - 더 매끄러운 그리기 펜

if (crtanje) 
      { 
       debljina = float.Parse(debljina_box.Text); 
       Graphics gr = Graphics.FromImage(bit); 
       gr.SmoothingMode = SmoothingMode.HighQuality; 
       olovka = new Pen(boja, debljina); 
       gr.DrawLine(olovka, new Point(prethodnoX ?? e.X, prethodnoY ?? e.Y), new Point(e.X, e.Y)); 
       panel1.CreateGraphics().DrawImageUnscaled(bit, new Point(0, 0)); 
       prethodnoX = e.X; 
       prethodnoY = e.Y; 
      } 

그림을 부드럽게 만들기 위해이 코드를 수정할 수 있습니까? 아니면 다른 접근 방식을 취해야합니까?

the pic

+0

이것은 프로그램의 새로 고침 빈도에 문제가 있습니다. 포토샵조차도 저와 같은 느린 컴퓨터에서 처리합니다. 아마도 점들 사이를 보간하여 더 매끄럽게 만들 수 있습니다. – annonymously

답변

0

은 당신이 for 루프를 반복하고 더 자주 점을 그리고 선이 매끄럽게 있도록 아주 소량을 증가시킬 수도있을 것 같군요. 현재 점을 저장하고 다음 점을 계산 한 다음 두 점 사이에 선을 그릴 수 있습니다. 그렇게하면 더 부드럽게 만들 수 있습니다!