| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > 3D Графика |
| Автор: НеуФазендник 12.4.2014, 11:36 |
| Добрый день. Есть массив координат паралелепипедов и таблица свойств, определяющая цвета и текстуру. Мне нужна 3D визуализация. Какие объекты и функции для этого подойдут? Допускаю не обязательно рисовать в VBA, но тогда нужен совет по экспорту данных из Excel в среду, которая отрисует 3D рисунок. |
| Автор: НеуФазендник 13.4.2014, 15:30 |
| ActiveSheet.Shapes.AddShape(msoShapeCube, В целом мне нравится этот объект. Он бы подошел для моих нужд. Но у меня подозрение, что у него нет свойства, позволяющего его разворачивать в любой плоскости. Т.к. плоскостей разворота может быть 3, а свойство IncrementRotation, логично предположить, только одной плоскостью ведает. И таким образом msoShapeCube невозможно ориентировать абсолютно любым способом. Я правильно понимаю ситуацию? |
| Автор: НеуФазендник 14.4.2014, 09:40 | ||
| С разворотом вроде бы разобрался сам так же, хотя с некоторыми оговорками. есть свойства RotationX, RotationY, RotationZ. Пример применения:
Однако остается два но. 1. Изначально, когда во всех плоскостях свойство Rotation нулевое, куб (параллелепипед) уже выглядит развернутым для наблюдателя. Тогда вопрос: каковы координаты наблюдателя в той системе координат, в которой рисуется куб изначально? 2. Не вижу ни где регулировки третьего измерения. Оно выставляется каким-то волшебным образом по умолчанию при генерации очередного объекта. В свойствах объекта есть только два измерения: ширина и высота. А как же устанавливать третье? Конечно, смешно публично обсуждать с самим собой все эти вопросы. Однако, возможно найденные мною или не найденные ответы кому-то в будущем помогут в решении аналогичной задачи. Так что, описываю свой путь в решении в надежде на это. |
| Автор: НеуФазендник 16.4.2014, 11:34 |
| Покумекав на параллельном форуме http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=56418&MID=471291&PAGEN_1=2&result=edit#message471291 на данную тему пришел к выводу, что стандартных средств Excel для тривиального решения этой задачи нет. Объект Shape Cube не может быть использован, т.к всё таки является двумерным изображением трёхмерного объекта, а не самим трёхмерным объектом. Поэтому его использование вызовет проблемы с попыткой обзора с разных ракурсов. В итоге на данный момент принял решение рисовать каждый куб созданием объектов - плоскостей. Каждый из которых наносить на "портрет" в определенной последовательности с учетом того, как в реальной ситуации они бы следовали друг за другом для глаз наблюдателя. Самым сложным является алгоритм установления этой последовательности. Принято решение последовательно вычленять из всего многообразия плоскостей ту, которая самая ближняя к обозревателю и не перекрывается ни полностью ни частично никакой другой плоскостью. После того, как будут вычленены все плоскости, следует их отрисовать в обратной последовательности. Тогда картина будет изображать реальный трёхмерный объект, сложенный параллелограммами, состоящими из отдельных плоскостей. |
| Автор: saxarnajaM 20.7.2016, 17:21 |
| Вы можете заказать предметную 3d визуализацию тут: http://www.fbtstudio.com/ru/predmetnaya-vizualizaciya Цены у них доступные и делают все быстро. |