'Matrix'에 해당되는 글 1건

  1. 2010.03.24 [Csharp/C#] 비트맵 회전 / Matrix Rotation

 혹여서 초초초초초초보 C# 코더께서 혹여나 Bitmap 에다 코드로 그린 그림을 돌리고 돌리고 돌리고 싶을 경우!

뭐, 검색하면 여기저기 널리고 널렸지만 아래와 같이 딱 하나의 함수면 됩니다.

C++에서와 같이 Graphics 에다가 Matrix를 적용시키면 되는데, Matrix 돌리는 방법이 C#에서는 더럽게 쉽지요.

(new Matrix).Rotatet(각도, 회전점);

요렇게 해주시고,

(Graphics).Transform = 여기 에다가 넣어주시면 됩니다 ㅋㅋ

_mat = new Matrix();
_mat.RotateAt(_angleForEntire, new PointF(0, 0));
_mat.RotateAt(_angleForPart, new PointF(pnlCanvas.Width / 2, pnlCanvas.Height / 2));
Graphics g = pnlCanvas.CreateGraphics();
g.Transform = _mat;
g.Clear(pnlCanvas.BackColor);
g.DrawImage(_bmp, new Point(pnlCanvas.Width / 2 - _bmp.Width / 2, pnlCanvas.Height / 2 - _bmp.Height / 2));

이 방법 말고도 sin, cos 이것저것 계산해서 적용시켜도 되지만 귀찮고 또 귀찮으니 그냥 이걸로 합니다 ㅋㅋ

그리고 제가 일하면서 꾀나 여러번 돌리고 돌리고 돌려서 그리는 것을 50ms 단위로 반복하는 짓거리를 해보았지만

그다지 많은 CPU를 잡아먹지 않는 것으로 나타났습니다.

뭐, 쓸만하단 얘기지요 ㅋㅋ

그럼 수고하시고, 혹여.. 혹!여 위의 코드가 잘 이해가 안가시는 분들은;;;

다운받아가셔요 ㅋㅋ 뭔가 열심히 돌아갑니다 ㅋㅋ

신고
Posted by ParkPill 박필