Torus, TorusKnot, Disc, Ribbon, Tube

Torus — это замкнутая поверхность, которая получается вращением окружности вокруг оси, которая лежит в той же плоскости, что и эта окружность. В Babylon.js торус используется для создания объектов в форме бублика или кольца. Он позволяет задавать различные параметры, такие как радиусы и количество сегментов, которые определяют его геометрию.

В Babylon.js можно создать объект типа Torus с помощью следующего кода:

const torus = BABYLON.MeshBuilder.CreateTorus("torus", {
    diameter: 2,
    thickness: 0.5,
    tessellation: 32
}, scene);

Здесь:

  • diameter — диаметр торуса.
  • thickness — толщина торуса (расстояние от центра до наружной стороны кольца).
  • tessellation — количество сегментов, которое определяет, как детализированно будет выглядеть поверхность торуса.

Торусы могут быть полезны для создания объектов, таких как кольца, планеты, различные шестеренки или другие элементы с подобной геометрией.

TorusKnot

TorusKnot — это разновидность торуса, который имеет сложную топологию и представляет собой узловатую структуру. Его можно представить как торус, который переплетается сам с собой, создавая фигуру с петлями и витками. Эта фигура также является замкнутой, но ее поверхность значительно более сложная, чем у обычного торуса.

Создание объекта типа TorusKnot в Babylon.js осуществляется следующим образом:

const torusKnot = BABYLON.MeshBuilder.CreateTorusKnot("torusKnot", {
    radius: 2,
    tube: 0.5,
    radialSegments: 64,
    tubularSegments: 8,
    p: 2,
    q: 3
}, scene);

В данном коде:

  • radius — радиус внешней окружности торуса.
  • tube — радиус трубки торуса.
  • radialSegments — количество сегментов вдоль радиуса.
  • tubularSegments — количество сегментов вдоль трубки.
  • p и q — параметры, которые определяют количество витков и петелек, создающих узел.

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

Disc

Disc — это двумерная геометрия, представляющая собой круглый диск с заданными параметрами. Этот объект создается путём простого выделения плоскости в виде круга и применяется в основном для представления плоских объектов, таких как колесо, различные платформы или детали, расположенные в одной плоскости.

Для создания объекта типа Disc используется следующий код:

const disc = BABYLON.MeshBuilder.CreateDisc("disc", {
    radius: 5,
    tessellation: 32
}, scene);

Здесь:

  • radius — радиус диска.
  • tessellation — количество сегментов, которые определяют степень детализации края диска.

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

Ribbon

Ribbon — это 2D-геометрия, которая представляет собой полосу, соединяющую несколько точек в пространстве. Линия может быть волнообразной или прямой, и она создается между точками, которые можно задавать вручную. Ribbon позволяет строить более сложные формы, такие как флаги, ленточные конструкции или другие объекты, которые требуют плавных переходов между точками.

Для создания объекта типа Ribbon необходимо передать массив точек, через которые будет проходить лента:

const ribbon = BABYLON.MeshBuilder.CreateRibbon("ribbon", {
    pathArray: [
        [new BABYLON.Vector3(0, 0, 0), new BABYLON.Vector3(0, 2, 0)],
        [new BABYLON.Vector3(0, 2, 2), new BABYLON.Vector3(0, 4, 2)],
        [new BABYLON.Vector3(0, 4, 4), new BABYLON.Vector3(0, 6, 4)]
    ],
    closeArray: false,
    closePath: false
}, scene);

В данном примере:

  • pathArray — массив точек, определяющих путь для ленты.
  • closeArray — флаг, который указывает, нужно ли замкнуть путь по оси X или Z.
  • closePath — флаг, который указывает, нужно ли замкнуть саму ленту по замкнутому пути.

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

Tube

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

Создание объекта типа Tube:

const tube = BABYLON.MeshBuilder.CreateTube("tube", {
    path: [new BABYLON.Vector3(0, 0, 0), new BABYLON.Vector3(5, 5, 5), new BABYLON.Vector3(10, 0, 10)],
    radius: 0.5,
    tessellation: 32,
    sideOrientation: BABYLON.Mesh.DOUBLESIDE
}, scene);

Здесь:

  • path — массив точек, которые определяют кривую, вдоль которой будет построена труба.
  • radius — радиус трубы.
  • tessellation — количество сегментов, которое определяет детализацию геометрии.
  • sideOrientation — ориентация поверхности трубы. Использование BABYLON.Mesh.DOUBLESIDE позволяет отобразить обе стороны поверхности.

Этот объект применяется для создания труб, проводов, шлангов и других объектов, требующих гладких изгибов и переходов между различными точками в пространстве.


Каждый из этих объектов предлагает уникальные возможности для создания сложных форм и визуализаций в 3D-графике с использованием Babylon.js. Разнообразие геометрических объектов помогает легко работать с различными типами сцен и моделировать объекты, которые могут быть использованы в самых разных приложениях, от игр до научных симуляций.