Примитив a-torus представляет собой трехмерную
геометрическую фигуру в виде тороида — кольца с круглым сечением. Он
используется для создания декоративных элементов, колец, обручей, колец
планетарной системы или сложных структур в виртуальной реальности. В
A-Frame a-torus является упрощенным способом добавления
тора без необходимости вручную описывать его геометрию через компонент
geometry.
Простейший пример создания тора:
<a-scene>
<a-torus color="#FF0000" radius="2" radius-tubular="0.5" segments-radial="36" segments-tubular="24" position="0 1.5 -5"></a-torus>
</a-scene>
Ключевые атрибуты:
radius — радиус центрального круга тора, определяет
общий размер фигуры.radius-tubular — радиус трубки, из которой состоит тор,
влияет на толщину кольца.segments-radial — количество сегментов по кругу,
определяющих плавность тороида по радиусу.segments-tubular — количество сегментов по окружности
трубки, определяет гладкость сечения.color — цвет материала тора.position — координаты объекта в сцене.Тор в A-Frame формируется как сетчатая геометрия
(mesh), состоящая из треугольников. Увеличение значений
segments-radial и segments-tubular повышает
визуальное качество, но одновременно увеличивает нагрузку на GPU. Для
интерактивных VR-приложений важно балансировать между качеством и
производительностью.
2 соответствует диаметру центрального круга 4 единицы.0.5 создаёт пропорционально
тонкую трубку.segments-radial="36",
segments-tubular="24".Примитив a-torus поддерживает компоненты материала
(material) и текстуры (src). Например, для
добавления металлического блеска и текстуры:
<a-torus radius="1.5" radius-tubular="0.3" segments-radial="48" segments-tubular="32"
material="color: #FFD700; metalness: 0.8; roughness: 0.2; src: #metalTexture"
position="0 1.2 -3"></a-torus>
metalness и roughness контролируют
визуальные свойства отражения.src позволяет использовать изображение в
качестве текстуры.Тор можно анимировать через компонент animation или
скрипты JavaScript. Примеры анимации вращения:
<a-torus radius="1" radius-tubular="0.2" position="0 1 -3" color="#00FF00"
animation="property: rotation; to: 0 360 0; loop: true; dur: 5000"></a-torus>
property — указывает свойство для анимации
(rotation, position, scale).to — конечное значение свойства.loop — повторение анимации бесконечно.dur — длительность одного цикла в миллисекундах.Для интерактивности можно использовать события
mouseenter, mouseleave и
click:
<a-torus id="interactiveTorus" radius="1" radius-tubular="0.3" color="#FF00FF"
position="0 1 -3"></a-torus>
<script>
const torus = document.querySelector('#interactiveTorus');
torus.addEventListener('mouseenter', () => torus.setAttribute('color', '#00FFFF'));
torus.addEventListener('mouseleave', () => torus.setAttribute('color', '#FF00FF'));
</script>
Тор может быть элементом интерфейса VR, ободком вокруг объектов,
декоративной деталью в архитектурных сценах или частью игрового
процесса. Его геометрическая симметрия позволяет создавать сцены с
повторяющимися кольцевыми структурами, а сочетание с другими примитивами
(a-sphere, a-box) расширяет возможности
визуального дизайна.
segments-radial ≤ 36 и
segments-tubular ≤ 24.metalness, roughness) создаёт реалистичный
блеск и отражения.a-light усиливает эффект
объема, особенно при динамическом освещении.Тор в A-Frame — гибкий инструмент для трехмерной композиции. Его
простота в настройке сочетается с возможностью детальной визуальной
кастомизации и интерактивности, что делает a-torus важным
элементом любой VR-сцены.