codegeekalpha Ответов: 1

Пересечение коробок/кубов с C#


Как обнаружить столкновение двух кубов, которые не вращаются в C#. если как рассчитать пересеченный объем

Что я уже пробовал:

Я пытаюсь сделать логику с использованием этого примера, который основан на прямоугольнике.
c++ - определите, перекрывают ли два прямоугольника друг друга? - переполнение стека[^]

но я застрял, не знаю, как опередить его.

Richard MacCutchan

Почему бы не вернуться к вопросу SO и не спросить человека, который опубликовал этот пример?

1 Ответов

Рейтинг:
2

Gerry Schmitz

Каждый куб-это набор точек, ограниченных его координатами в трехмерном пространстве.

Вы можете построить последовательности "точек" для каждого набора, а затем использовать операции набора LINQ, чтобы найти, где они пересекаются.

Или вы можете повторить каждую точку в Кубе А, и "Луч бросил" его в куб B; где каждый "удар" является тогда пересечением.

После нескольких попыток вы, вероятно, подумаете о некоторых оптимизациях (предполагая, что вы начинаете с "маленьких" кубиков).

(По сути, вы разбиваете кубики на более мелкие кубики).