Создание фигур в Two.js строится вокруг набора параметров, которые определяют геометрию, позиционирование, внешний вид и поведение объектов. Любая фигура — это объект сцены, обладающий свойствами, доступными для изменения как при создании, так и в процессе работы.
Ключевая особенность библиотеки — единый подход к параметрам: независимо от типа фигуры (круг, прямоугольник, линия), используются схожие механизмы задания координат, размеров и стилей.
x и yКаждая фигура в Two.js имеет положение в двумерном пространстве, задаваемое координатами:
var circle = two.makeCircle(100, 150, 50);
100 — координата по оси X150 — координата по оси YСистема координат:
После создания позицию можно изменить:
circle.position.x = 200;
circle.position.y = 300;
Или сразу:
circle.position.set(200, 300);
Параметры размеров зависят от типа фигуры:
makeCircle)var circle = two.makeCircle(x, y, radius);
radius — радиус кругаmakeRectangle)var rect = two.makeRectangle(x, y, width, height);
width — ширинаheight — высотаmakeEllipse)var ellipse = two.makeEllipse(x, y, rx, ry);
rx — радиус по горизонталиry — радиус по вертикалиmakeLine)var line = two.makeLine(x1, y1, x2, y2);
Для фигур, создаваемых вручную (например, через
Two.Path), используются вершины:
var path = new Two.Path([
new Two.Anchor(0, 0),
new Two.Anchor(100, 0),
new Two.Anchor(100, 100)
], true);
Параметры:
Anchor)true или false)Каждая вершина может содержать:
fill)Определяет внутренний цвет фигуры:
circle.fill = 'red';
Поддерживаются:
'blue',
'rgb(255,0,0)')'#FF0000')rgba)Отключение заливки:
circle.fill = 'transparent';
stroke, linewidth)Обводка задаётся отдельно:
circle.stroke = 'black';
circle.linewidth = 2;
Дополнительные параметры:
linewidth — толщина линииopacity — прозрачность обводкиОтключение:
circle.noStroke();
opacity)Общий уровень прозрачности фигуры:
circle.opacity = 0.5;
Значения:
0 — полностью прозрачный1 — полностью непрозрачныйscale)Позволяет изменять размер без изменения исходных параметров:
circle.scale = 2;
Или по осям:
circle.scale = new Two.Vector(2, 1);
Особенности:
rotation)Угол поворота задаётся в радианах:
circle.rotation = Math.PI / 4;
Эквиваленты:
Math.PI — 180°Math.PI / 2 — 90°Поворот происходит вокруг центра фигуры.
translation и origin)Two.js использует внутреннюю точку отсчёта:
shape.translation.set(x, y);
Также можно изменить точку вращения:
shape.origin.set(50, 50);
Это влияет на:
visible)Позволяет скрывать фигуру:
circle.visible = false;
Полезно для:
join, cap)Для линий и контуров:
line.join = 'round';
line.cap = 'round';
Варианты:
miter — острые углыround — скруглённыеbevel — срезанныеДля кривых используются управляющие точки:
var anchor = new Two.Anchor(x, y, lx, ly, rx, ry);
Где:
lx, ly — левая контрольная точкаrx, ry — правая контрольная точкаЭто позволяет создавать:
Фигуры можно объединять в группы:
var group = two.makeGroup(circle, rect);
Группа имеет те же параметры:
positionrotationscaleИзменение параметров группы влияет на все вложенные элементы.
Two.js позволяет менять параметры в реальном времени:
two.bind('update', function() {
circle.rotation += 0.01;
circle.scale += 0.01;
});
После изменений необходимо обновление сцены:
two.update();
Большинство параметров можно:
Пример комбинирования:
var rect = two.makeRectangle(100, 100, 50, 50);
rect.fill = 'blue';
rect.rotation = Math.PI / 6;
rect.scale = 1.5;
При создании фигур порядок аргументов строго фиксирован. Ошибки приводят к некорректному отображению:
// корректно
two.makeRectangle(x, y, width, height);
// ошибка
two.makeRectangle(width, height, x, y);
Two.js поддерживает несколько типов рендеринга:
Параметры фигур остаются одинаковыми, но:
Каждая фигура в Two.js включает:
Геометрия
Трансформации
Стили
Поведение
Такой подход обеспечивает гибкость и позволяет управлять как простыми, так и сложными сценами с единым API.