大部分信息不需要回答我的问题,我把它包括在内,以防有人知道更简单的方法来做到这一点,我的问题在最后。
我有一个 X 和 Y 向量,我正在使用的是移动球的路径。当那个球撞到墙上时,比方说顶墙,它会朝负方向反弹,这很容易。但如果它撞到一堵有角度的墙,我可以很容易地计算出一个方向,我想把剩下的力加到另一个方向上。将其想象成乒乓球或迷你高尔夫。
例子。
一个球以 5,10 的速度行进,这意味着它每向右行进 5 个像素,就会向下行进 10 个像素。 当它到达底部时,我会将 Y 轴乘以 -1 使其变为 5,-10
但如果我以 45 度角击球,则部分力会转移到 X 方向。无论哪种方式。
问题: 我需要使 X+Y 总计为 15,如果其中之一为负数,我需要将其视为正数。
-10+5 = 15
-5+10 = 15
5+10 = 15
-5+-10 = 15
我知道我可以先将它们全部转换为正,然后再进行比较,但这看起来很笨重。
最佳答案
使用 Math.Abs
函数将 -15 和 +15 都变成 +15:
var a = -10;
var b = 5;
Console.WriteLine(Math.Abs(a) + Math.Abs(b))
关于c# - 你能把两个数字相加吗,就好像它们是正数一样,即使它们可能是负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100272/