Использование JavaScript для моделирования 3D-многогранников
-
16-09-2019 - |
Вопрос
Существует ли библиотека JavaScript, которая моделирует 3D многогранники используя тег холста или SVG?Скажем, я хотел создать визуализацию Платоновые тела, как мне лучше всего этого добиться?Кстати, меня интересуют только веб-браузеры на базе WebKit, такие как Safari и Chrome.
Я видел эту классную демонстрацию того, как рендерить 3D треугольники, но как я могу распространить его на многогранники с произвольным числом сторон?
Решение
Взгляните на эту библиотеку: SVG-VML-3D
Он использует SVG и возвращается к VML в MSIE.У них есть демо с платоновыми телами.У меня нет под рукой Webkit-браузера, но полагаю, что и там он должен работать.
Другие советы
Это не прямой ответ на ваш вопрос, но, учитывая, что вы упомянули только WebKit, я решил указать на новый 3D-преобразование CSS поддержка, которая была добавлена в webkit совсем недавно.Это позволяет вам делать то, что вы хотите, без использования Javascript.Я не видел примера трехмерных многогранников, но есть примеры кубов и т. д., например. здесь.
Есть немного более сложная демонстрация. здесь который имеет кольцо из прямоугольников.Чтобы получить представление о том, что вы можете сделать (хотя для анимации используется Javascript), см. Снежный стек демо.
Большинство 3D-библиотек обобщают треугольники.Если вам нужен многоугольник с более чем тремя сторонами, вы разделите его на треугольники и нарисуете эти треугольники.Если вас интересуют только платоновые тела, то вам будет довольно легко, потому что вы можете легко получить триангуацию каждой грани, сначала усреднив вершины каждой грани, а затем используя этот центр и две смежные грани. вершины лица, чтобы дать вам триангуляризацию.