c#中的旋转面板

本文关键字:旋转 | 更新日期: 2023-09-27 18:13:05

我正在制作一款c#游戏,这对我来说是一门新语言。

当我按住键盘上的一个键时,我想让面板旋转。当键被释放时,面板应停止旋转。

我在网上看了看,找到了GDI+,但我不太明白它。这是网站:https://web.archive.org/web/20141229192143/http://bobpowell.net/drawing_an_image.aspx

我已经读过关于GDI+,但我不知道如何在我的情况下使用它,我已经在项目中有面板,以及如何添加它。

这是用于旋转的代码,但是当我将其放入程序中时,所有内容都加了下划线。

mx.Rotate(-30);
g.Transform = mx;
g.DrawImage(img,new Point(100,50));

我真的不明白mx.rotate行是什么意思,也不知道我应该如何更新它来实现按下键时的旋转。

谁能告诉我有什么问题吗?

我用的是Visual studio 2008

c#中的旋转面板

原始代码中少了一行:

Matrix mx = new Matrix();

将此添加到代码中,它应该可以工作。这将以一个角度绘制图像,就像在原始文档中一样。如果你想让用户看到面板的旋转,你最好使用计时器来增加旋转角度并重新绘制。

您的代码中有一些错误。下面是一个从Paint事件中绘制旋转图像的工作示例。

private void Form1_Paint(object sender, PaintEventArgs e) 
{
    var matrix = new Matrix();
    var image = Image.FromFile("c:''img''your-image.png");
    matrix.Rotate(-30);
    e.Graphics.Transform = matrix;
    e.Graphics.DrawImage(image, new Point(100, 100));
}