Мне удалось рассчитать радиус ограниченной сферы двумя способами, но никто не дает мне именно то, что я хочу. Мне не нужна «пиксельная» идеальная ограничивающая сфера, но мне бы хотелось что-то лучшее, чем то, что у меня есть сейчас.Имея небольшой вопрос, вычисляющий радиус ограниченной сферы
Я использую модели Wavefront .obj и вычисляю радиус ограниченной сферы для этих моделей. Я извлекаю текущие размеры модели (я использую библиотеку GLM от Nate Robbins), которая даст мне измерение на каждой оси.
Первый подход: Разделите каждую ось на 2, и это даст мне радиус на каждой оси. Самый большой - тот, который я буду использовать для своей ограниченной сферы. Это будет работать для большинства объектов, специфичных для моего проекта. Для некоторых это не сработает, как кубические. В принципе, если у меня есть куб и вычисляется радиус с этим подходом, сфера будет оставлять углы куба снаружи.
Второй подход: Разделите каждую ось на 2, и это даст мне радиус на каждой оси. Затем я делаю это, чтобы вынуть радиус для ограничивающей сферы:
r = SQRT(x*x + y*y + z*z)
Но это дает мне довольно большой радиус. Объект будет полностью закрыт в сфере, но сфера довольно большая, больше, чем должно быть.
Я не понимаю, что я делаю неправильно в формуле выше, насколько я знаю, она должна работать. Но я, очевидно, ошибаюсь ...
Для куба или поля вашего второй подход дает вам точный радиус ограничивающей сферы. Таким образом, нет лучшего подхода, использующего только размерные экстенты на ось. – Howard