假设我有一个表格并在上面画了一个椭圆形。然后我想获取一个控件(例如图片框)并且(同时保持控件的左上角正好在线上)我想按照绘制的椭圆逐像素移动控件。
基本上我想计算椭圆形中每个位置/像素的顶部/左侧点。我知道它是一个基本公式,但我一辈子都记不起它叫什么或它是如何完成的。
有人愿意帮忙吗?
最佳答案
double step=1.0; // how fast do you want it to move
double halfWidth=100.0; // width of the ellipse divided by 2
double halfHeight=50.0; // height of the ellipse divided by 2
for (double angle=0; angle<360; angle+=step)
{
int x=(int)halfWidth * Math.Cos(angle/180*Math.PI);
int y=(int)halfHeight * Math.Sin(angle/180*Math.PI);
pictureBox.TopLeft=new Point(x,y);
}
编辑:
现在,如果你要问如果你这样写它为什么不移动 - 你必须以以下形式向它添加消息循环处理:
Application.DoEvents();
您将把它放在循环中。
关于c# - 动画基础数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6027508/