C#Vector3以百分比形式获得剩余区域

时间:2017-12-05 21:09:07

标签: c# area vector-graphics qvector3d

我有两个Vector3,每个都代表一个区域的大小。第一个是该区域的总量。第二个只是第一个的一部分。当我减去较小的区域时,如何获得总面积的剩余百分比?

1 个答案:

答案 0 :(得分:0)

如果两者都代表大小(根据定义,它们在组件中是正数)和完全相互关系(一个完全位于另一个的边界),那么您只需计算其体积差异的百分比:

|v1.volume - v2.volume|/max(v1.volume, v2.volume)

所以在代码中它看起来像这样:

double v1Volume = v1.x * v1.y * v1.z;
double v2Volume = v2.x * v2.y * v2.z;
double percentageDiff = 100 * Math.Abs(v1Volume - v2Volume) / Math.Max(v1Volume, v2Volume);

这样一来,哪一个小,哪一个大,哪个都放在这个功能中,它会显示正确的答案。