Bitbybit Docs
    Preparing search index...

    Class CrossSectionTransforms

    Перемещение, поворот, масштабирование, отражение и деформация сечений Manifold в плоскости XY. Углы в градусах, повороты выполняются вокруг начала координат; каждый метод возвращает новое сечение.

    Index

    Constructors

    matrix

    • Применяет к сечению матрицу 3x3, для любого сочетания перемещения, поворота, масштаба и сдвига в плоскости.

      Parameters

      Returns Promise<CrossSectionPointer>

      Преобразованное сечение

      const moved = await bitbybit.manifold.crossSection.transforms.transform({ crossSection: square, transform: matrix });
      

    transforms

    • Масштабирует сечение отдельным коэффициентом вдоль X и Y, относительно начала координат.

      Parameters

      Returns Promise<CrossSectionPointer>

      Масштабированное сечение

      const stretched = await bitbybit.manifold.crossSection.transforms.scale2D({ crossSection: square, vector: [2, 1] });
      
    • Масштабирует сечение равномерно относительно начала координат на коэффициент.

      Parameters

      Returns Promise<CrossSectionPointer>

      Масштабированное сечение

      const bigger = await bitbybit.manifold.crossSection.transforms.scale({ crossSection: square, factor: 2 });
      
    • Отражает сечение относительно прямой через начало координат, перпендикулярной заданной нормали.

      Parameters

      Returns Promise<CrossSectionPointer>

      Отраженное сечение

      const other = await bitbybit.manifold.crossSection.transforms.mirror({ crossSection: outline, normal: [1, 0] });
      
    • Поворачивает сечение вокруг начала координат на угол в градусах, против часовой стрелки.

      Parameters

      Returns Promise<CrossSectionPointer>

      Повернутое сечение

      const turned = await bitbybit.manifold.crossSection.transforms.rotate({ crossSection: square, degrees: 45 });
      
    • Перемещает каждую точку сечения вашей собственной функцией, которая изменяет точку на месте, затем сливает результат, так что любые пересечения, внесенные перемещением, очищаются.

      Parameters

      Returns Promise<CrossSectionPointer>

      Деформированное сечение

      const wavy = await bitbybit.manifold.crossSection.transforms.warp({
      crossSection: square,
      warpFunc: (vert) => { vert[1] += Math.sin(vert[0]) * 0.5; },
      });