C# Vector3 получают оставшуюся площадь в процентах

У меня есть два Vector3, каждый из которых представляет размер области. Первый - это общая площадь. Второй - это только часть первого. Как я могу получить процент, который остается от общей площади, когда я вычитаю меньшую площадь?

1 ответ

Решение

Если оба представляют размер (они положительны в компонентах по определению) и полностью пересекаются (один полностью лежит в границах другого), то вам просто нужно рассчитать процент от их разности объемов:

|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);

Таким образом, даже не имеет значения, какой маленький, а какой большой, просто вставьте обе функции, и он покажет правильный ответ.

Другие вопросы по тегам