Нахождение минимальной сферы ограничения для frustum

У меня есть frustum (усеченная пирамида), и я должен вычислить сферу ограничения для этого frustum, который это как можно меньше. Я могу выбрать центр, чтобы быть прямо в центре frustum и радиуса быть расстоянием до одного из "далеких" углов, но это обычно оставляет довольно много слабых вокруг узкого конца frustum

Это походит на простую геометрию, но я, может казаться, не понимаю это. Какие-либо идеи?

10
задан BlueRaja - Danny Pflughoeft 3 February 2010 в 19:40
поделиться

6 ответов

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

5
ответ дан 3 December 2019 в 21:59
поделиться

Ну, конечно же, есть http://www.cgafaq.info/wiki/Minimal_enclosing_sphere (через Google).

Я бы подумал, что есть две возможности. Первая (если разочарование очень плоское) состоит в том, что противоположные точки основания становятся противоположными точками на сфере. Другой (если недовольство очень высокое) - это то, что противоположные точки основания станут противоположными точками на сфере, и из этих четырёх точек (одна точка основания, одна противоположная первой на основании, одна противоположная первая на высшем квадрате, одна противоположная первая на высшем квадрате) можно вычислить сферу.

Вычислите первую сферу. Если в нее вписывается фрустрим, то это ваш ответ. В противном случае, вторая сфера будет вашим ответом.

5
ответ дан 3 December 2019 в 21:59
поделиться

Чтобы сделать это, найдите сферу, которая соответствует 4 точкам на вашей пирамиде. Если это правильная пирамида (усеченная пирамида - плохо, я предполагал цилиндрическую пирамиду), то вы получаете две точки из противоположных углов верхнего четырехугольника, а два других - из нижнего четырехугольника, не в фазе с двумя верхними. . Затем используйте это , чтобы получить свою сферу.

2
ответ дан 3 December 2019 в 21:59
поделиться

Любой набор из четырех некопланарных точек определяет сферу. Предполагая, что вы используете четырехгранную пирамиду для пирамиды, существует 70 возможных наборов из четырех точек. Попробуйте все 70 сфер и посмотрите, какая из них наименьшая.

Учитывая, что ваша усеченная пирамида, вероятно, имеет некоторую симметрию, вы, вероятно, можете выбрать четыре точки на противоположных углах и использовать решение цоколя.

0
ответ дан 3 December 2019 в 21:59
поделиться

Узнайте, как blinksale.com справляется с этим. Это приложение для выставления счетов, но чтобы оно не выглядело слишком пустым для новой учетной записи, оно показывает статические изображения в местах, где вы бы действительно имели содержимое, если бы вы использовали приложение.

-121--3329728-

Интерактивная прогулка/лабораторное упражнение, которое действительно подчеркивает основные и интересные предложения вашего приложения.

Пример: почта Yahoo делает то же самое, когда пользователи предпочитают использовать новый почтовый интерфейс

-121--3329730-

Строго говоря (согласно это ) основание усеченного тела может быть любым многоугольником и, также строго говоря, что многоугольник даже не должен быть выпуклым. Тем не менее, чтобы получить общее решение проблемы, я думаю, что вам, возможно, потребуется использовать (почти) все вершины, как предложено выше. Однако могут быть особые случаи, решение которых (как было предложено выше) может потребовать лишь сравнения пары сфер. Мне нравится ссылка Энтони выше: Мегиддо обеспечивает преобразование, которое, как он утверждает, дает решение за O (n) (!) время. Неплохо!

0
ответ дан 3 December 2019 в 21:59
поделиться

Вам нужно найти точку на «вертикальной» линии вниз по центру усеченной вершины, где расстояние до края в нижней и верхней части усеченной вершины (при условии, что она симметрична) будет одинаковым.

решите так, чтобы точка внизу была Xb, Yb, Zb, точка сверху была Xt, Yt, Zt, а линия была точкой Xp, Yp, Zp плюс вектор Ax, By, Cz.

решите уравнение

sqrt( (Xb - (Xp + VAx) )^2 + (Yb - (Yp + VBy))^2 + (Zb - (Zp + VCy))^2) = 
sqrt( (Xt - (Xp + VAx) )^2 + (Yt - (Yp + VBy))^2 + (Zt - (Zp + VCy))^2).

Единственная переменная в нем - это скаляр V.

0
ответ дан 3 December 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: