首页 > 解决方案 > 通过在 C# 中设置两个坐标点来自动移动一个点 - Winforms Visual Studio(动态点)

问题描述

我正在开发一个允许用户选择要播放的视频的 Winforms 应用程序。该视频是从我大学的主要入口到他选择的命运(教室,实验室,教授办公室......)的路径。

现在,我想添加一个带有移动红点的小地图,它每时每刻都指示视频的位置。我已经用建筑图的图像创建了“地图”,还画了红点。你可以看到代码:

    Graphics Grafico;
    Pen Lapiz = new Pen(Color.Red, 3);

//Planos es el nombre de la pictureBox donde se encuentra el plano del edificio
    private void Planos_Paint_1(object sender, PaintEventArgs e)
    {
        Grafico = e.Graphics;
        Grafico.DrawEllipse(Lapiz, Grafico.ClipBounds.Left + 174, Grafico.ClipBounds.Top + 123, 3, 3);
    }

红点必须与视频同时移动。另外,我们必须记住,用户可以暂停、加速、倒带视频……所以如果视频停止、加速或倒带,点也必须这样做

我一直在想,也许我应该设置几个坐标点并告诉必须通过它们的点观看视频的状态。但是,我不知道该怎么做。

如果你们中的一些人能帮助我,我将不胜感激。我没有太多的编程知识。

标签: c#visual-studiowinforms

解决方案


您可以生成一系列带有点在地图中移动的图像,并使用 ffmpeg 或任何此类工具将这些图像组合成视频。然后,您可以使用视频编辑工具将两个视频混合成一个视频。播放视频时,一切都会同步进行。现在,问题是如何移动点以匹配视频。例如,您需要以 1 秒的时间间隔沿视频播放,并在地图上记录坐标。您对点进行编程,通过将每个线段分割成 30 或 60 的增量并在其中绘制一个点,以恒定速度沿这些线段移动点。30 和 60 被选为 30fps 的 60fps。


推荐阅读