Bitbybit Docs
    Preparing search index...

    Class Line

    Garis lurus antara dua titik, disimpan sebagai objek biasa berbentuk { start, end }, dan bentuk segmen [start, end] dari hal yang sama. Metode-metode di sini membangun garis, mengukur dan mentransformasinya, mengonversi antara kedua bentuk, menempatkan titik di sepanjangnya dan menemukan tempat dua garis berpotongan. Panjang dalam satuan model.

    Index

    Constructors

    convert

    • Mengubah objek garis menjadi bentuk segmennya, pasangan [start, end].

      Contoh: { start: [0,0,0], end: [10,5,0] } -> [[0,0,0], [10,5,0]]

      Parameters

      Returns Segment3

      Segmen

    • Mengubah setiap objek garis menjadi bentuk segmennya, pasangan [start, end].

      Contoh: tiga garis -> tiga segmen, dalam urutan yang sama

      Parameters

      Returns Segment3[]

      Satu segmen per garis

    • Mengubah segmen, pasangan [start, end], menjadi objek garis.

      Contoh: [[0,0,0], [10,5,0]] -> { start: [0,0,0], end: [10,5,0] }

      Parameters

      Returns Line3

      Garis

    • Mengubah setiap segmen, pasangan [start, end], menjadi objek garis.

      Contoh: tiga segmen -> tiga garis, dalam urutan yang sama

      Parameters

      Returns Line3[]

      Satu garis per segmen

    create

    • Membangun objek garis dari titik awal dan titik akhir.

      Contoh: awal [0,0,0], akhir [10,5,0] -> { start: [0,0,0], end: [10,5,0] }

      Parameters

      Returns Line3

      Objek garis

      const line = bitbybit.line.create({ start: [0, 0, 0], end: [10, 5, 0] });
      
    • Membangun segmen, bentuk pasangan-titik dari sebuah garis, dari titik awal dan titik akhir.

      Contoh: awal [0,0,0], akhir [10,5,0] -> [[0,0,0], [10,5,0]]

      Parameters

      Returns Segment3

      Segmen sebagai [start, end]

      const segment = bitbybit.line.createSegment({ start: [0, 0, 0], end: [10, 5, 0] });
      
    • Menyambungkan setiap titik ke titik berikutnya dengan garis, sehingga daftar titik menjadi rantai garis.

      Contoh: [[0,0,0], [5,0,0], [5,5,0]] -> dua garis, [0,0,0] ke [5,0,0] dan [5,0,0] ke [5,5,0]

      Parameters

      Returns Line3[]

      Satu garis per pasangan titik yang bertetangga

      const chain = bitbybit.line.linesBetweenPoints({ points: [[0, 0, 0], [5, 0, 0], [5, 5, 0]] });
      
    • Memasangkan setiap titik awal dengan titik akhir pada posisi yang sama dan menyambungkannya dengan garis.

      Pasangan yang kedua titiknya berimpit tidak menghasilkan garis dan ditinggalkan. Contoh: awal [[0,0,0], [5,0,0]] dan akhir [[0,5,0], [5,5,0]] -> dua garis

      Parameters

      Returns Line3[]

      Satu garis per pasangan, melewati pasangan berpanjang 0

      const rungs = bitbybit.line.linesBetweenStartAndEndPoints({
      startPoints: [[0, 0, 0], [5, 0, 0]],
      endPoints: [[0, 5, 0], [5, 5, 0]],
      });

    get

    • Mengukur jarak lurus dari awal garis ke akhirnya.

      Contoh: { start: [0,0,0], end: [3,4,0] } -> 5

      Parameters

      Returns number

      Panjang dalam satuan model

    • Menemukan titik pada pecahan tertentu di sepanjang garis: 0 menghasilkan awal, 1 akhir, 0.5 tengah.

      Pecahan di luar 0 sampai 1 berlanjut melewati ujung-ujungnya. Contoh: { start: [0,0,0], end: [10,0,0] } pada 0.5 -> [5,0,0]

      Parameters

      Returns Point3

      Titik pada garis

      const middle = bitbybit.line.getPointOnLine({ line: { start: [0, 0, 0], end: [10, 0, 0] }, param: 0.5 });
      

    intersection

    • Menemukan titik tempat dua garis berpotongan.

      Dengan checkSegmentsOnly aktif, perpotongan harus berada di dalam kedua segmen; jika tidak aktif, garis-garis diperpanjang tanpa batas. Garis sejajar, garis yang saling melewati tanpa bertemu, dan segmen yang tidak saling mencapai menghasilkan undefined. Toleransi menyatakan seberapa dekat yang dihitung sebagai bertemu. Contoh: [0,0,0] ke [10,0,0] dan [5,-5,0] ke [5,5,0] -> [5,0,0]

      Parameters

      Returns Point3

      Titik perpotongan, atau undefined jika tidak ada

      const crossing = bitbybit.line.lineLineIntersection({
      line1: { start: [0, 0, 0], end: [10, 0, 0] },
      line2: { start: [5, -5, 0], end: [5, 5, 0] },
      checkSegmentsOnly: true,
      tolerance: 1e-6,
      });

    operations

    • Menukar awal dan akhir garis, sehingga berjalan ke arah sebaliknya.

      Contoh: { start: [0,0,0], end: [10,5,0] } -> { start: [10,5,0], end: [0,0,0] }

      Parameters

      Returns Line3

      Garis baru dengan arah sebaliknya

    transforms

    • Menerapkan matriks transformasi, atau daftar matriks secara berurutan, ke kedua ujung garis.

      Contoh: { start: [0,0,0], end: [10,0,0] } dipindahkan sejauh [5,5,0] -> { start: [5,5,0], end: [15,5,0] }

      Parameters

      Returns Line3

      Garis baru dengan ujung-ujung yang ditransformasi

      const moved = bitbybit.line.transformLine({
      line: { start: [0, 0, 0], end: [10, 0, 0] },
      transformation: bitbybit.transforms.translationXYZ({ translation: [5, 5, 0] }),
      });
    • Menerapkan transformasi yang berbeda ke setiap garis: transformasi pertama ke garis pertama, dan seterusnya.

      Contoh: tiga garis dengan tiga translasi -> setiap garis dipindahkan oleh translasinya sendiri

      Parameters

      Returns Line3[]

      Garis-garis yang ditransformasi, dalam urutan yang sama

      const placed = bitbybit.line.transformsForLines({
      lines: [{ start: [0, 0, 0], end: [1, 0, 0] }, { start: [0, 0, 0], end: [0, 1, 0] }],
      transformation: bitbybit.transforms.translationsXYZ({ translations: [[0, 1, 0], [0, 2, 0]] }),
      });