Unity/C# 添加两个向量表示的两个区域
Unity/C# Adding two areas represented by two vectors
我有两个区域,里面都给出了bounds.size。现在 z 轴对我来说无关紧要,因为我在 2D 中工作。我想添加这些矢量,所以我有一个代表关节区域的矢量。简单地以正常方式添加这些向量是行不通的。该区域最终看起来的样子并不重要,重要的是两个区域的大小相同。
编辑:我有两个多边形碰撞器的 bounds.size,我想获得一个值,该值表示两个多边形碰撞器的组合 bounds.size
区域1和区域2合并
The way the area looks in the end is not important, its just important that the size is the same as, both areas combined.
因为除此之外还有几乎无限的可能性,我将把自己限制在 x = y
的结果,原因很简单,你不会得到像 (0.5,80000)
这样愚蠢的向量,但是而是更平衡的 (200,200)
.
从代数的角度来看,这并不难:
float result_area = first_area + second_area;
计算面积很简单:
float area = myVector.X * myVector.Y;
因此面积总和也很容易:
float result_area = myFirstVector.X * myFirstVector.Y + mySecondVector.X * mySecondVector.Y;
为了举例,我们假设 first_area = 50
和 second_area = 350
,结果是 result_area = 400
;
由于我们仅限于 x = y
的结果,因此结果是面积的 平方根 :
float theSquareRoot = Math.Sqrt(result_area);
myResultVector.X = theSquareRoot;
myResultVector.Y = theSquareRoot;
正如我所说,还有许多其他可能的结果向量。对于其他情况,您要么必须定义一个给定的比率(例如,对于同一示例,1 : 4
的比率会给您 (10,40)
),但计算有点困难,您提到无论如何你都不关心确切的形状。
您也可以只创建一个向量,其中 X = result_area
和 Y = 1
(反之亦然),而无需计算平方根。
请注意,您过度设计了它。物体的面积是一个一维值(一个数字);但是您使用二维值(数字对)来表示它们。
由于您不关心特定的 X/Y 值,只关心它们的乘积,我建议您尽可能避免使用向量,这样就不会不必要地复杂化。
我有两个区域,里面都给出了bounds.size。现在 z 轴对我来说无关紧要,因为我在 2D 中工作。我想添加这些矢量,所以我有一个代表关节区域的矢量。简单地以正常方式添加这些向量是行不通的。该区域最终看起来的样子并不重要,重要的是两个区域的大小相同。
编辑:我有两个多边形碰撞器的 bounds.size,我想获得一个值,该值表示两个多边形碰撞器的组合 bounds.size
区域1和区域2合并
The way the area looks in the end is not important, its just important that the size is the same as, both areas combined.
因为除此之外还有几乎无限的可能性,我将把自己限制在 x = y
的结果,原因很简单,你不会得到像 (0.5,80000)
这样愚蠢的向量,但是而是更平衡的 (200,200)
.
从代数的角度来看,这并不难:
float result_area = first_area + second_area;
计算面积很简单:
float area = myVector.X * myVector.Y;
因此面积总和也很容易:
float result_area = myFirstVector.X * myFirstVector.Y + mySecondVector.X * mySecondVector.Y;
为了举例,我们假设 first_area = 50
和 second_area = 350
,结果是 result_area = 400
;
由于我们仅限于 x = y
的结果,因此结果是面积的 平方根 :
float theSquareRoot = Math.Sqrt(result_area);
myResultVector.X = theSquareRoot;
myResultVector.Y = theSquareRoot;
正如我所说,还有许多其他可能的结果向量。对于其他情况,您要么必须定义一个给定的比率(例如,对于同一示例,1 : 4
的比率会给您 (10,40)
),但计算有点困难,您提到无论如何你都不关心确切的形状。
您也可以只创建一个向量,其中 X = result_area
和 Y = 1
(反之亦然),而无需计算平方根。
请注意,您过度设计了它。物体的面积是一个一维值(一个数字);但是您使用二维值(数字对)来表示它们。
由于您不关心特定的 X/Y 值,只关心它们的乘积,我建议您尽可能避免使用向量,这样就不会不必要地复杂化。