Bitbybit Docs
    Preparing search index...

    Class Polyline

    Polyline: rantai segmen lurus melalui daftar titik, disimpan sebagai objek biasa berbentuk { points, isClosed }. Polyline tertutup menyambungkan titik terakhirnya kembali ke titik pertama. Metode-metode di sini mengukur polyline, mengonversinya ke segmen atau garis, menemukan tempat polyline berpotongan, mengurutkan segmen-segmen lepas menjadi rantai dan menentukan ukuran fillet untuk sudut-sudutnya. Panjang dalam satuan model.

    Index

    Constructors

    convert

    • Memecah polyline menjadi objek-objek garis, satu per segmen, masing-masing dengan titik awal dan titik akhir.

      Polyline tertutup juga mendapat segmen dari titik terakhirnya kembali ke titik pertama, kecuali keduanya berimpit. Contoh: tiga titik -> dua garis, atau tiga jika tertutup

      Parameters

      Returns Line3[]

      Satu garis per segmen, secara berurutan

      const lines = bitbybit.polyline.polylineToLines({ polyline: { points: [[0, 0, 0], [1, 0, 0], [1, 1, 0]], isClosed: true } });
      
    • Memecah polyline menjadi segmen-segmen, masing-masing pasangan titik.

      Polyline tertutup juga mendapat segmen dari titik terakhirnya kembali ke titik pertama, kecuali keduanya berimpit. Kurang dari dua titik tidak menghasilkan segmen. Contoh: empat titik, tertutup -> empat segmen mengelilingi loop

      Parameters

      Returns Segment3[]

      Satu pasangan titik per segmen, secara berurutan

      const segments = bitbybit.polyline.polylineToSegments({ polyline: { points: [[0, 0, 0], [1, 0, 0], [1, 1, 0]], isClosed: false } });
      

    create

    fillet

    • Menemukan fillet terbesar untuk setiap sudut polyline, masing-masing dibatasi pada separuh terdekat segmen-segmennya sehingga fillet tidak pernah tumpang tindih.

      Polyline tertutup menyertakan kedua sudut di ujung-ujungnya. Kurang dari tiga titik menghasilkan daftar kosong.

      Parameters

      Returns number[]

      Satu jari-jari per sudut, dalam urutan sudut-sudutnya

      const radii = bitbybit.polyline.maxFilletsHalfLine({
      polyline: { points: [[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0]], isClosed: true },
      tolerance: 1e-7,
      });
    • Menemukan satu jari-jari fillet yang muat pada setiap sudut polyline: yang terkecil dari maksimum per sudut menurut aturan setengah segmen.

      Kurang dari tiga titik, atau sudut mana pun yang tidak memungkinkan fillet, menghasilkan 0.

      Parameters

      Returns number

      Jari-jari yang cocok untuk setiap sudut, dalam satuan model

      const radius = bitbybit.polyline.safestFilletRadius({
      polyline: { points: [[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0]], isClosed: true },
      tolerance: 1e-7,
      });

    get

    • Mengukur polyline dengan menjumlahkan jarak lurus antara titik-titik yang bertetangga.

      Segmen penutup polyline tertutup tidak dihitung. Contoh: [[0,0,0], [3,0,0], [3,4,0]] -> 7

      Parameters

      Returns number

      Panjang dalam satuan model

      const len = bitbybit.polyline.length({ polyline: { points: [[0, 0, 0], [3, 0, 0], [3, 4, 0]] } });
      

    intersection

    • Menemukan titik-titik tempat dua polyline saling berpotongan, menguji setiap segmen yang satu terhadap setiap segmen yang lain.

      Perpotongan yang berjarak lebih dekat daripada toleransi dilaporkan sekali. Contoh: dua polyline yang membentuk X -> titik di tengahnya

      Parameters

      Returns Point3[]

      Titik-titik perpotongan; kosong jika tidak ada

      const crossings = bitbybit.polyline.twoPolylineIntersection({
      polyline1: { points: [[0, 0, 0], [2, 2, 0]] },
      polyline2: { points: [[0, 2, 0], [2, 0, 0]] },
      tolerance: 1e-6,
      });

    intersections

    • Menemukan titik-titik tempat polyline memotong dirinya sendiri.

      Segmen yang bertetangga tidak diuji satu sama lain, dan perpotongan yang berjarak lebih dekat daripada toleransi dilaporkan sekali. Contoh: angka delapan -> satu titik perpotongannya

      Parameters

      Returns Point3[]

      Titik-titik perpotongan; kosong jika tidak ada

      const crossings = bitbybit.polyline.polylineSelfIntersection({
      polyline: { points: [[0, 0, 0], [2, 2, 0], [2, 0, 0], [0, 2, 0]] },
      tolerance: 1e-6,
      });

    sort

    • Menyambungkan segmen-segmen lepas menjadi polyline dengan mencocokkan ujung-ujung yang bertemu dalam batas toleransi.

      Segmen yang tersambung ujung ke ujung menjadi satu polyline per rantai; segmen yang tidak menyentuh apa pun menjadi polyline satu segmen. Contoh: sepuluh segmen tersebar yang membentuk dua rantai -> dua polyline

      Parameters

      Returns Polyline3[]

      Polyline-polyline yang dibentuk segmen-segmen tersebut

      const chains = bitbybit.polyline.sortSegmentsIntoPolylines({
      segments: [[[0, 0, 0], [1, 0, 0]], [[1, 0, 0], [1, 1, 0]], [[5, 5, 0], [6, 5, 0]]],
      tolerance: 1e-5,
      });

    transforms

    • Menerapkan matriks transformasi, atau daftar matriks secara berurutan, ke setiap titik polyline.

      Contoh: translasi sebesar [5,0,0] -> setiap titik dipindahkan 5 sepanjang X

      Parameters

      Returns Bit.Inputs.Polyline.PolylinePropertiesDto

      Polyline baru dengan titik-titik yang ditransformasi

      const moved = bitbybit.polyline.transformPolyline({
      polyline: { points: [[0, 0, 0], [1, 0, 0]] },
      transformation: bitbybit.transforms.translationXYZ({ translation: [5, 0, 0] }),
      });