Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C数学,碰撞检测,xna_C#_Math_Xna_Collision Detection - Fatal编程技术网

C# C数学,碰撞检测,xna

C# C数学,碰撞检测,xna,c#,math,xna,collision-detection,C#,Math,Xna,Collision Detection,我在游戏中做碰撞检测。 所有的表面都是正交的,所以我只需要确定我移动的物体与障碍物的哪一面碰撞。 我有一个矩形,它定义了两个对象的交点,还有一个向量,表示移动对象的速度和移动方向 我想我需要沿着我的移动对象向量平移相交矩形,直到相交变成一条线,然后我就会知道哪个面与第一个面发生了碰撞 然而,我不知道如何在数学上或编程上做到这一点 计算从物体内部障碍物角点到物体内部障碍物角点的矢量。无论你的运动矢量在哪一侧,都会给出最先接触的那一侧。如果角度相同,则首先接触角 这里你的运动矢量大约是260度,然

我在游戏中做碰撞检测。 所有的表面都是正交的,所以我只需要确定我移动的物体与障碍物的哪一面碰撞。 我有一个矩形,它定义了两个对象的交点,还有一个向量,表示移动对象的速度和移动方向

我想我需要沿着我的移动对象向量平移相交矩形,直到相交变成一条线,然后我就会知道哪个面与第一个面发生了碰撞

然而,我不知道如何在数学上或编程上做到这一点


计算从物体内部障碍物角点到物体内部障碍物角点的矢量。无论你的运动矢量在哪一侧,都会给出最先接触的那一侧。如果角度相同,则首先接触角

这里你的运动矢量大约是260度,然后计算出的矢量大约是240度。从计算到移动逆时针为20度,顺时针为340度。因此,逆时针方向的底部首先发生碰撞


你需要能够分辨出哪一边是有问题的,哪一边是顺时针的,哪一边是逆时针的-我希望这很简单。

计算从物体内部障碍物的角到物体内部障碍物的角的向量。无论你的运动矢量在哪一侧,都会给出最先接触的那一侧。如果角度相同,则首先接触角

这里你的运动矢量大约是260度,然后计算出的矢量大约是240度。从计算到移动逆时针为20度,顺时针为340度。因此,逆时针方向的底部首先发生碰撞

你需要知道哪一边是有问题的,哪一边是顺时针的,哪一边是逆时针的-我希望这很简单。

你可以比较速度向量的大小和相交矩形的纵横比

对于此特定示例,如果速度向量比相交矩形陡峭,即定义了一个更高、更薄的矩形,则碰撞发生在底面上

如果速度矢量较浅,则碰撞发生在移动矩形的左侧

如果速度矢量与相交矩形的纵横比相同,即速度位于相交矩形的对角线上,则它们在拐角处发生碰撞。

您可以将速度矢量的纵横比与相交矩形的纵横比进行比较

对于此特定示例,如果速度向量比相交矩形陡峭,即定义了一个更高、更薄的矩形,则碰撞发生在底面上

如果速度矢量较浅,则碰撞发生在移动矩形的左侧


如果速度向量与相交矩形的纵横比相同,即速度位于相交矩形的对角线上,则它们在拐角处发生碰撞。

事实上,我可能已经计算出了

在相交矩形上找到不在对象上的点 长方形

从那里沿矢量方向画一条线

无论它与哪一边相交,都是第一次碰撞的那一边
事实上我可能已经知道了

在相交矩形上找到不在对象上的点 长方形

从那里沿矢量方向画一条线

无论它与哪一边相交,都是第一次碰撞的那一边
非常好的绘画技巧我亲爱的先生。非常好的绘画技巧我亲爱的先生。谢谢你的帮助,但我认为那是不对的。如果我能在这篇评论中添加一张图片,这会很方便,但角度可能完全相同,但取决于两个正方形的相对位置,它们的垂直或水平边可能会发生碰撞1st@GuyeIncognito我明白你的意思。回到绘图板上。@GuyeIncognito拿两张-让我知道你对这件事的看法。谢谢你的帮助,但我不认为这是正确的。如果我能在这篇评论中添加一张图片,这会很方便,但角度可能完全相同,但取决于两个正方形的相对位置,它们的垂直或水平边可能会发生碰撞1st@GuyeIncognito我明白你的意思。回到绘图板上。@GuyeIncognito拿两个-让我知道你对此的看法。我想这相当于我的答案,只是更简单\o/我想这相当于我的答案,只是更简单\o/