Bitbybit Docs
    Preparing search index...

    Class ManifoldTransforms

    Menggeser, memutar, menskalakan, mencerminkan dan membengkokkan solid Manifold. Kernel menggabungkan transformasi secara malas, sehingga merangkainya murah; sudut dalam derajat, dan rotasi berputar mengelilingi titik asal, X dulu, lalu Y, lalu Z. Setiap metode mengembalikan solid baru.

    Index

    Constructors

    matrix

    • Menerapkan matriks 4x4 ke sebuah solid.

      Matriksnya column-major, 16 angka dengan translasi di indeks 12 sampai 14; kernel membacanya sebagai transformasi affine 3x4 dan mengabaikan baris terakhir.

      Parameters

      Returns Promise<ManifoldPointer>

      Solid yang ditransformasi

      const moved = await bitbybit.manifold.manifold.transforms.transform({ manifold: cube, transform: matrix });
      
    • Menerapkan daftar matriks 4x4 ke sebuah solid satu demi satu, dari pertama sampai terakhir, dan mengembalikan hasil akhirnya.

      Daftar kosong memicu error.

      Parameters

      Returns Promise<ManifoldPointer>

      Solid setelah semua matriks diterapkan

      const placed = await bitbybit.manifold.manifold.transforms.transforms({ manifold: cube, transforms: [turn, move] });
      

    multiple

    • Membuat satu salinan solid yang dipindahkan per vektor, untuk menyusun pengulangan.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Satu salinan yang digeser per vektor, dalam urutan yang sama

      const row = await bitbybit.manifold.manifold.transforms.translateByVectors({ manifold: cube, vectors: [[0, 0, 0], [10, 0, 0], [20, 0, 0]] });
      

    transforms

    • Merotasi solid terhadap titik asal dengan sudut Euler dalam derajat: pertama mengelilingi X, lalu Y, lalu Z.

      Kelipatan 90 derajat bersifat eksak, tanpa galat pembulatan.

      Parameters

      Returns Promise<ManifoldPointer>

      Solid yang diputar

      const turned = await bitbybit.manifold.manifold.transforms.rotate({ manifold: cube, vector: [0, 0, 45] });
      
    • Merotasi solid terhadap titik asal dengan sudut terpisah dalam derajat mengelilingi X, lalu Y, lalu Z.

      Kelipatan 90 derajat bersifat eksak, tanpa galat pembulatan.

      Parameters

      Returns Promise<ManifoldPointer>

      Solid yang diputar

      const turned = await bitbybit.manifold.manifold.transforms.rotateXYZ({ manifold: cube, x: 0, y: 0, z: 45 });
      
    • Memindahkan setiap verteks solid dengan fungsi Anda sendiri yang mengubah posisi verteks di tempat, untuk tekukan, tirus dan deformasi bebas lainnya.

      Konektivitas mesh tetap sama dan tidak ada yang memeriksa apakah hasilnya masih masuk akal, jadi fungsi yang melipat permukaan menembus dirinya sendiri menghasilkan solid yang rusak.

      Parameters

      Returns Promise<ManifoldPointer>

      Solid yang dibengkokkan

      const bent = await bitbybit.manifold.manifold.transforms.warp({
      manifold: cube,
      warpFunc: (vert) => { vert[0] += vert[2] * 0.2; },
      });