В A-Frame каждый 3D-объект создается через примитивы
или сущности (<a-entity>). Примитив
a-dodecahedron представляет собой додекаэдр — правильный
многогранник с 12 плоскими пятиугольными гранями. Он включен в
стандартный набор примитивов библиотеки и поддерживает все базовые
атрибуты геометрии, материалы, позиционирование и анимацию.
a-dodecahedronradius — задает радиус сферы, в
которую вписан додекаэдр. Значение по умолчанию равно
1.
<a-dodecahedron radius="2" color="#4CC3D9"></a-dodecahedron>color — цвет материала. Работает
совместно с material, позволяя задавать непрозрачность,
текстуры и другие параметры.
<a-dodecahedron color="#FF5733" metalness="0.5" roughness="0.3"></a-dodecahedron>segments — задает уровень
детализации геометрии. Для додекаэдра обычно достаточно стандартного
значения, но его можно увеличивать для сглаживания при сложной
анимации.
position,
rotation,
scale — стандартные трансформации,
применимые к любому примитиву.
<a-dodecahedron position="0 1 -5" rotation="45 30 0" scale="1.5 1.5 1.5"></a-dodecahedron>Для придания реалистичного вида используется компонент
material. Он позволяет задавать:
color — базовый цвет объекта.src — путь к текстуре.metalness и
roughness — отражение и
шероховатость.opacity — прозрачность.Пример с текстурой и эффектом металла:
<a-dodecahedron
radius="1.5"
material="src: #texture; metalness: 0.8; roughness: 0.2">
</a-dodecahedron>
Любой примитив можно анимировать с помощью компонента
animation. Например, вращение додекаэдра вокруг оси Y:
<a-dodecahedron
radius="1.2"
color="#00FFAA"
animation="property: rotation; to: 0 360 0; loop: true; dur: 5000">
</a-dodecahedron>
Анимации можно комбинировать: движение по оси, масштабирование,
изменение цвета. Поддерживаются также события mouseenter,
mouseleave, click для интерактивности.
Помимо a-dodecahedron, A-Frame предоставляет множество
базовых фигур:
a-box — куб или прямоугольный
параллелепипед.a-sphere — сфера.a-cylinder — цилиндр с возможностью
задания верхнего и нижнего радиусов.a-cone — конус.a-tetrahedron — тетраэдр.a-octahedron — октаэдр.a-icosahedron — икосаэдр.a-plane — плоскость, удобная для
создания пола, стен или экранов.Все эти примитивы имеют одинаковые базовые свойства:
position, rotation, scale,
material, анимацию и события. Это позволяет быстро
комбинировать фигуры для построения сложных сцен и взаимодействующих
объектов.
Сцены становятся более динамичными при объединении нескольких примитивов. Например, конструкция из додекаэдра, куба и сферы:
<a-scene>
<a-dodecahedron position="-1 1 -4" color="#FF0000"></a-dodecahedron>
<a-box position="0 0.5 -3" color="#00FF00" rotation="0 45 0"></a-box>
<a-sphere position="2 1 -5" radius="0.5" color="#0000FF"></a-sphere>
</a-scene>
Использование группировок через
<a-entity> позволяет управлять несколькими фигурами
как единым объектом, задавая общие трансформации и анимацию.
segments и использовать
текстуры с оптимизированным разрешением.<a-entity gltf-model>) расширяет возможности
визуализации.click, mouseenter, mouseleave,
mousedown, mouseup. Любой примитив может стать
интерактивным объектом без дополнительного кода.Использование a-dodecahedron и других примитивов
является фундаментом для построения 3D-сцен в A-Frame, позволяя
создавать сложные структуры, динамичные анимации и интерактивные объекты
с минимальными усилиями.