绘制两点之间的路径

Ste*_*eve 6 c# math xna windows-phone-7

我正在开发一款基于触控的游戏,而且我在绘制用户触及的路径方面遇到了问题.我正在尝试模仿这些应用程序http://www.youtube.com/watch?v=G3CECr6mT1Qhttp://www.youtube.com/watch?v=r34-_0wrVC4

我在XNA/C#中这样做.

我的问题是:我有一组定义用户触摸路径的路标.我不确定如何在所有这些点之间得到一条风格化的线,所以我想"嘿,我将只有一个非常小的图像'线',并在航点之间的每个点绘制它,并相应地旋转它如果这是最好的解决方案,我不确定.

但我被卡住了,因为我不知道如何获得这两点之间的所有坐标.我有两点,我可以得到从第一个到第二个的矢量等,但我似乎无法得到正确的数学.

有什么建议或帮助吗?谢谢!

Emp*_*ean 5

要计算两点之间的中间点,找到从一个点到另一个点的方向向量以及点之间的距离.将距离缩放0到1之间的因子t,其中t = 0对应于第一点t = 0.5是它们之间的中间,t = 1对应于第二点.然后通过此值缩放方向向量并将其添加到原始点.

Vector2 IntermediatePoint(Vector2 p0, Vector2 p1, float t)
{
    Vector2 delta = p1 - p0;

    float distance = delta.Length();

    if (distance == 0.0f)
    {
        return p0;
    }
    else
    {
        Vector2 direction = delta / distance;

        return p0 + direction * (distance * t);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果计算p0和p1之间的多个点,则只应计算一次距离和方向.

您还可以考虑使用XNA RoundLine来连接您的积分.

另一个建议是设置纹理旋转四边形.