Я хочу реализовать код, который изображение течет в бесконечном цикле в качестве фона. Сделать это. Я подготовил 2 объекта изображения (коробка с картинками). затемКак плавно перемещать изображение автоматически? в C#
Я реализую код движущегося изображения, как показано ниже. (Я очистил какой-то несущественный код в этом разделе)
private void InitializeComponent()
{
this.p1.Image = ((System.Drawing.Image)(resources.GetObject("picture")));
this.p1.Location = new System.Drawing.Point(0, -1000); // 0,0 // 0, -1000
this.p1.Size = new System.Drawing.Size(1000, 1000);
this.p2.Image = ((System.Drawing.Image)(resources.GetObject("picture")));
this.p2.Location = new System.Drawing.Point(0, 1000); // 0,0 // 0, -1000
this.p2.Size = new System.Drawing.Size(1000, 1000);
t1 = new Thread(new ParameterizedThreadStart(loop));
t1.Start();
}
private void loop(Object o)
{
CTMethod cttest = new CTMethod(movePictureBox);
while (true)
{
try
{
this.Invoke(cttest);
Thread.Sleep(10); // I updated..
} catch(Exception e) {
break;
}
}
}
private void movePictureBox()
{
if (p1.Top == 0)
{
p2.Top = p1.Top-p2.Height;
}
if (p2.Top == 0)
{
p1.Top = p2.Top-p1.Height;
}
p1.Top++;
}
этот код работает хорошо. Но я столкнулся с некоторыми проблемами. Линия связи (подключенная линия) из 2 изображений выглядит заикающейся или время от времени тряски. Я не знаю, почему изображения движутся так. Имеет ли это отношения с lerp (интерполяция)? Если кто-то знает причину, не могли бы вы мне помочь?
перемещение означает анимацию. Для этого есть [API] (http://msdn.microsoft.com/en-us/library/ms752312%28v=vs.110%29.aspx), потому что это не так просто, как установка координат и сон. –
@DmitryLedentsov Этот API для WPF, вопрос, похоже, касается Winforms (а не того, что метод OP - это то, как это должно быть сделано). – Rotem
@DmitryLedentsov Это зависит от того, чего вы пытаетесь достичь. некоторые виды движения могут хорошо подходить для анимации с API, некоторые из них не так много. –