Bitbybit Docs
    Preparing search index...

    Class ManifoldCrossSection

    Manifold 内核中的平面轮廓,即 operations.extrudeoperations.revolve 变成实体、sliceproject 从实体中切出的 2D 形状。横截面是 XY 平面内的一个或多个闭合多边形,包括孔洞;shapes 构建它们,booleans 组合它们,operations 偏移、求凸包和拉伸它们,transforms 移动它们,evaluate 测量它们。这里的方法在横截面和普通点列表之间转换,并释放横截面占用的内存。

    Index

    Constructors

    Properties

    create

    • 由以点给出的一个多边形构建横截面;只使用每个点的 X 和 Y。

      fillRule 决定自相交多边形的哪些区域算作内部;removeDuplicates 先丢弃 tolerance 内连续重复的点。

      Parameters

      Returns Promise<CrossSectionPointer>

      横截面

      const outline = await bitbybit.manifold.crossSection.crossSectionFromPoints({
      points: [[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0]],
      fillRule: Bit.Inputs.Manifold.fillRuleEnum.positive,
      removeDuplicates: false,
      tolerance: 1e-7,
      });
    • 由以点给出的多个多边形构建横截面,例如一个轮廓及其孔;只使用每个点的 X 和 Y。

      fillRule 决定多边形重叠处哪些区域算作内部;removeDuplicates 先丢弃 tolerance 内连续重复的点。

      Parameters

      Returns Promise<CrossSectionPointer>

      横截面

      const plate = await bitbybit.manifold.crossSection.crossSectionFromPolygons({
      polygonPoints: [outerPoints, holePoints],
      fillRule: Bit.Inputs.Manifold.fillRuleEnum.evenOdd,
      removeDuplicates: false,
      tolerance: 1e-7,
      });

    decompose

    • 将横截面读回为其多边形,每个是一个 2D 点列表。

      Parameters

      Returns Promise<Vector2[][]>

      每个多边形一个 2D 点列表

      const polygons = await bitbybit.manifold.crossSection.crossSectionToPolygons({ crossSection: outline });
      
    • 将横截面读回为带 3D 点的多边形,Z 设为 0,可作为折线绘制。

      Parameters

      Returns Promise<Point3[][]>

      每个多边形一个点列表

      const polylines = await bitbybit.manifold.crossSection.crossSectionToPoints({ crossSection: outline });
      
    • 将多个横截面读回为它们的多边形,与 crossSectionToPolygons 对一个所做的相同。

      Parameters

      Returns Promise<Vector2[][][]>

      每个横截面一个多边形列表,顺序相同

      const polygons = await bitbybit.manifold.crossSection.crossSectionsToPolygons({ crossSections: [outline, hole] });
      
    • 将多个横截面读回为带 3D 点的多边形,与 crossSectionToPoints 对一个所做的相同。

      Parameters

      Returns Promise<number[][][][]>

      每个横截面一个点多边形列表,顺序相同

      const polylines = await bitbybit.manifold.crossSection.crossSectionsToPoints({ crossSections: [outline, hole] });