【发布时间】:2016-05-06 08:49:50
【问题描述】:
解决了
我正在尝试模拟一颗行星旋转一颗恒星。我目前知道移动图片框的语法 (我有一个计时器,所以它会重复)
private void rotate_timer(object sender, EventArgs e) {
picturebox1.location = new point (picturebox1.location.x + 1,
picturebox1.location.y + 1);
}
但我不知道从哪里开始,以便它围绕特定点旋转。 我将如何围绕 (0,0) 旋转它?
【问题讨论】:
-
您将在图片框内旋转图像,而不是图片框本身 - How do I rotate a picture in C# - 通常移动图片框的原理相同:考虑改为绘制图像在特定坐标处直接在(大概)表单上。
-
但我不需要旋转图像。我需要该框以围绕一个给定距离的点旋转。
-
如果您想绕轴旋转对象,您需要使用三角函数(例如
x = Math.Sin(angle); y = Math.Cos(angle);)。 ([0, 0] 的原点只是在原点绕 z 轴旋转。) -
您的意思是如何在弯曲的路径上移动,而不是如何旋转。答案是:了解你的路径和动画。在 winforms 中使用计时器并计算每个刻度的新位置点。如果您还想旋转,您仍然需要旋转图像。控件只能是直的,不能旋转。
标签: c# timer visual-studio-2015 rotation picturebox