Как вы представляете суб-модель в 3D-сцене? - PullRequest
1 голос
/ 15 мая 2009

Мне нужно изменить приложение WPF, написанное на C #, которое отображает сложную трехмерную модель со многими подмоделями или деталями. Когда пользователь выбирает деталь с помощью альтернативного механизма пользовательского интерфейса, я бы хотел повернуть, масштабировать или переместить сцену, чтобы была видна субмодель. Ни одна подмодель не является полностью скрытой (т. Е. Интерьер основной модели).

Какой лучший способ сделать это?

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

1 Ответ

1 голос
/ 15 мая 2009

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

EDIT

В этом случае вам, возможно, будет лучше, если вы сначала поищете в Google. Специфическая функция, о которой вы говорите, обычно называется 'zoom to fit' . Если вы немного погуглите, я уверен, что вы найдете подробное обсуждение реализаций, которое будет гораздо лучше, чем я мог бы здесь Это объяснение требует от вас понимания таких вещей, как преобразования между экранными координатами и мировыми координатами и их взаимосвязь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...