Bitbybit Docs
    Preparing search index...

    Class Point

    Titik sebagai array angka biasa. Sebuah titik adalah [x, y, z] dengan Y mengarah ke atas, sama seperti vektor, sehingga keduanya dapat diberikan ke metode satu sama lain; titik 2D adalah [x, y]. Setiap metode mengembalikan titik atau angka baru dan tidak pernah mengubah masukannya. Sudut dalam derajat dan panjang dalam satuan model.

    Index

    Constructors

    clean

    • Menghapus titik jika mengulang titik tepat sebelumnya; titik yang sama di tempat yang lebih jauh dipertahankan.

      Dengan checkFirstAndLast aktif, titik terakhir yang mengulang yang pertama juga dibuang. Titik-titik yang berjarak dalam tolerance satu sama lain dihitung sama. Contoh: [[0,0,0], [0,0,0], [1,0,0], [1,0,0], [2,0,0]] -> [[0,0,0], [1,0,0], [2,0,0]]

      Parameters

      Returns Point3[]

      Titik-titik tanpa pengulangan berurutan

      const cleaned = bitbybit.point.removeConsecutiveDuplicates({
      points: [[0, 0, 0], [0, 0, 0], [1, 0, 0]],
      tolerance: 1e-7,
      checkFirstAndLast: false,
      });

    create

    • Membangun titik 3D dari nilai x, y dan z-nya.

      Contoh: x=10, y=5, z=3 -> [10,5,3]

      Parameters

      Returns Point3

      Titik [x, y, z]

      const point = bitbybit.point.pointXYZ({ x: 10, y: 5, z: 3 });
      
    • Membangun titik 2D dari nilai x dan y-nya.

      Contoh: x=10, y=5 -> [10,5]

      Parameters

      Returns Point2

      Titik [x, y]

      const point = bitbybit.point.pointXY({ x: 10, y: 5 });
      
    • Menyusun titik-titik sepanjang spiral logaritmik pada bidang XY, dari titik asal ke luar sampai radius.

      numberPoints menyetel berapa banyak titik yang ditempatkan, phi dan widening seberapa cepat spiral membuka, dan factor di mana di sepanjang kurva spiral dimulai. Setiap titik memiliki z = 0.

      Parameters

      • inputs: SpiralDto

        Jumlah titik, jari-jari dan bentuk spiral

      Returns Point3[]

      Titik-titik di sepanjang spiral, dari pusat ke luar

      const points = bitbybit.point.spiral({ phi: 0.9, numberPoints: 100, widening: 3, radius: 10, factor: 1 });
      
    • Menyusun pusat-pusat sarang lebah dari heksagon pada bidang XY.

      radiusHexagon adalah jarak dari pusat heksagon ke sudutnya; kolom berjalan sepanjang X dan baris sepanjang Y, setiap baris kedua digeser setengah kolom. orientOnCenter memusatkan grid pada titik asal, pointsOnGround meletakkannya pada bidang XZ.

      Parameters

      • inputs: HexGridCentersDto

        Ukuran heksagon, berapa kolom dan baris, dan di mana grid ditempatkan

      Returns Point3[]

      Titik-titik pusat, baris demi baris

      const centers = bitbybit.point.hexGrid({ radiusHexagon: 1, nrHexagonsX: 5, nrHexagonsY: 4, orientOnCenter: true, pointsOnGround: false });
      
    • Menyusun sarang lebah dari heksagon yang mengisi lebar dan tinggi tertentu, dengan ukuran heksagon ditentukan dari jumlahnya.

      Hasilnya membawa titik-titik pusat dan enam sudut setiap heksagon. Sudut mengarah ke atas kecuali flatTop disetel; flag extend meregangkan baris-baris terluar melewati tepi untuk menutupi persegi panjang tanpa batas yang bergerigi.

      Parameters

      Returns HexGridData

      Pusat dan titik sudut setiap heksagon

      const grid = bitbybit.point.hexGridScaledToFit({
      width: 10,
      height: 10,
      nrHexagonsInWidth: 5,
      nrHexagonsInHeight: 5,
      flatTop: false,
      centerGrid: true,
      });
    • Menemukan arah yang tegak lurus terhadap bidang yang melewati tiga titik, dengan panjang 1.

      Arahnya mengikuti aturan tangan kanan dari titik pertama ke kedua ke ketiga; reverseNormal membaliknya. Titik-titik pada satu garis tidak memiliki bidang, sehingga hasilnya undefined. Contoh: [0,0,0], [1,0,0], [0,1,0] -> [0,0,1]

      Parameters

      Returns Vector3

      Normal satuan, atau undefined jika titik-titiknya segaris

      const normal = bitbybit.point.normalFromThreePoints({
      point1: [0, 0, 0],
      point2: [1, 0, 0],
      point3: [0, 1, 0],
      reverseNormal: false,
      });

    extract

    • Menemukan kotak sejajar sumbu terkecil yang memuat semua titik.

      Hasilnya membawa sudut min dan max, pusat, serta lebar (X), tinggi (Y) dan panjang (Z). Contoh: titik [[0,0,0], [10,5,3]] -> min [0,0,0], max [10,5,3], pusat [5,2.5,1.5]

      Parameters

      Returns BoundingBox

      Kotak pembatas beserta sudut, pusat dan ukurannya

      const box = bitbybit.point.boundingBoxOfPoints({ points: [[0, 0, 0], [10, 5, 3], [-2, 1, 1]] });
      
    • Mengukur jarak dari sebuah titik ke titik terdekat dalam daftar.

      Contoh: titik [0,0,0] dan titik-titik [[5,0,0], [10,0,0], [3,0,0]] -> 3

      Parameters

      Returns number

      Jarak ke titik terdekat, dalam satuan model

      const nearest = bitbybit.point.closestPointFromPointsDistance({ point: [0, 0, 0], points: [[5, 0, 0], [3, 0, 0]] });
      
    • Menemukan posisi titik terdekat dalam daftar, dihitung dari 1.

      Contoh: titik [0,0,0] dan titik-titik [[5,0,0], [10,0,0], [3,0,0]] -> 3

      Parameters

      Returns number

      Indeks berbasis 1 dari titik terdekat

      const index = bitbybit.point.closestPointFromPointsIndex({ point: [0, 0, 0], points: [[5, 0, 0], [3, 0, 0]] });
      
    • Menemukan titik terdekat dalam daftar terhadap titik yang diberikan.

      Contoh: titik [0,0,0] dan titik-titik [[5,0,0], [10,0,0], [3,0,0]] -> [3,0,0]

      Parameters

      Returns Point3

      Titik terdekat

      const nearest = bitbybit.point.closestPointFromPoints({ point: [0, 0, 0], points: [[5, 0, 0], [3, 0, 0]] });
      
    • Menemukan rata-rata titik-titik, yang merupakan pusat massanya jika bobotnya sama.

      Contoh: [[0,0,0], [10,0,0], [10,10,0]] -> [6.67,3.33,0]

      Parameters

      Returns Point3

      Titik rata-rata

      const center = bitbybit.point.averagePoint({ points: [[0, 0, 0], [10, 0, 0], [10, 10, 0]] });
      

    fillet

    • Menemukan fillet terbesar yang muat pada sebuah sudut: busurnya menyentuh kedua segmen dan tetap berada di dalamnya.

      Sudutnya adalah end; start dan center adalah ujung jauh dari kedua segmen yang bertemu di sana. Jari-jari dibatasi oleh segmen yang lebih pendek. Sudut yang lurus atau terlipat balik, atau segmen yang lebih pendek dari tolerance, menghasilkan 0.

      Parameters

      Returns number

      Jari-jari fillet terbesar, dalam satuan model

      const radius = bitbybit.point.maxFilletRadius({ start: [10, 0, 0], center: [0, 10, 0], end: [0, 0, 0], tolerance: 1e-7 });
      
    • Menemukan fillet terbesar pada sebuah sudut yang busurnya menyentuh setiap segmen di dalam separuh terdekatnya, sehingga sudut-sudut yang bertetangga pada polyline masing-masing dapat di-fillet tanpa busur yang tumpang tindih.

      Sudutnya adalah end; start dan center adalah ujung jauh dari kedua segmen. Sudut yang lurus atau terlipat balik, atau segmen yang lebih pendek dari tolerance, menghasilkan 0.

      Parameters

      Returns number

      Jari-jari fillet terbesar menurut aturan setengah segmen, dalam satuan model

      const radius = bitbybit.point.maxFilletRadiusHalfLine({ start: [10, 0, 0], center: [0, 10, 0], end: [0, 0, 0], tolerance: 1e-7 });
      
    • Menemukan fillet terbesar untuk setiap sudut polyline, masing-masing dibatasi pada separuh terdekat segmen-segmennya sehingga fillet tidak pernah tumpang tindih.

      Dengan checkLastWithFirst aktif, polyline diperlakukan sebagai tertutup dan kedua sudut di ujung-ujungnya disertakan. Kurang dari tiga titik menghasilkan daftar kosong.

      Parameters

      Returns number[]

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

      const radii = bitbybit.point.maxFilletsHalfLine({
      points: [[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0]],
      checkLastWithFirst: 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.

      Dengan checkLastWithFirst aktif, polyline diperlakukan sebagai tertutup. 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.point.safestPointsMaxFilletHalfLine({
      points: [[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0]],
      checkLastWithFirst: true,
      tolerance: 1e-7,
      });

    get

    • Membaca nilai Y sebuah titik, yang mengarah ke atas.

      Contoh: [5,10,3] -> 10

      Parameters

      Returns number

      Nilai Y

    measure

    • Mengukur jarak garis lurus antara dua titik.

      Contoh: [0,0,0] ke [3,4,0] -> 5

      Parameters

      Returns number

      Jarak dalam satuan model

      const d = bitbybit.point.distance({ startPoint: [0, 0, 0], endPoint: [3, 4, 0] });
      
    • Mengukur jarak dari satu titik ke setiap titik dalam daftar.

      Contoh: awal [0,0,0] dan titik-titik akhir [[3,0,0], [0,4,0], [5,0,0]] -> [3, 4, 5]

      Parameters

      Returns number[]

      Satu jarak per titik akhir, dalam urutan yang sama

      const distances = bitbybit.point.distancesToPoints({ startPoint: [0, 0, 0], endPoints: [[3, 0, 0], [0, 4, 0]] });
      
    • Memberi tahu apakah dua titik lebih dekat satu sama lain daripada toleransi.

      Contoh: [1.0000001, 2, 3] dan [1, 2, 3] dengan toleransi 1e-6 -> true

      Parameters

      Returns boolean

      True jika jarak di antara keduanya di bawah toleransi

      const same = bitbybit.point.twoPointsAlmostEqual({ point1: [1, 2, 3], point2: [1, 2, 3.0000001], tolerance: 1e-6 });
      

    sort

    • Mengurutkan titik-titik menurut X, lalu menurut Y untuk X yang sama, lalu menurut Z.

      Contoh: [[5,0,0], [1,0,0], [3,0,0]] -> [[1,0,0], [3,0,0], [5,0,0]]

      Parameters

      Returns Point3[]

      Salinan titik-titik yang telah diurutkan

      const sorted = bitbybit.point.sortPoints({ points: [[5, 0, 0], [1, 0, 0], [3, 0, 0]] });
      

    transforms

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

      Contoh: titik [0,0,0] dengan translasi sebesar [5,5,0] -> [5,5,0]

      Parameters

      Returns Point3

      Titik yang ditransformasi

      const moved = bitbybit.point.transformPoint({
      point: [0, 0, 0],
      transformation: bitbybit.transforms.translationXYZ({ translation: [5, 5, 0] }),
      });
    • Menerapkan matriks transformasi yang sama, atau daftar matriks secara berurutan, ke setiap titik.

      Contoh: lima titik dengan rotasi 90 derajat -> kelimanya dirotasi bersama

      Parameters

      • inputs: TransformPointsDto

        Titik-titik dan transformasi yang diterapkan pada masing-masing

      Returns Point3[]

      Titik-titik yang ditransformasi, dalam urutan yang sama

      const rotated = bitbybit.point.transformPoints({
      points: [[1, 0, 0], [2, 0, 0]],
      transformation: bitbybit.transforms.rotationCenterAxis({ center: [0, 0, 0], axis: [0, 1, 0], angle: 90 }),
      });
    • Menerapkan transformasi yang berbeda ke setiap titik: transformasi pertama ke titik pertama, dan seterusnya.

      Kedua daftar harus sama panjang, atau error dipicu. Contoh: tiga titik dengan tiga translasi -> setiap titik dipindahkan oleh translasinya sendiri

      Parameters

      Returns Point3[]

      Titik-titik yang ditransformasi, dalam urutan yang sama

      const placed = bitbybit.point.transformsForPoints({
      points: [[0, 0, 0], [1, 0, 0]],
      transformation: bitbybit.transforms.translationsXYZ({ translations: [[0, 1, 0], [0, 2, 0]] }),
      });
    • Memindahkan setiap titik sejauh vektor yang sama.

      Contoh: titik [[0,0,0], [1,0,0]] sejauh [5,5,0] -> [[5,5,0], [6,5,0]]

      Parameters

      Returns Point3[]

      Titik-titik yang digeser, dalam urutan yang sama

      const moved = bitbybit.point.translatePoints({ points: [[0, 0, 0], [1, 0, 0]], translation: [5, 5, 0] });
      
    • Memindahkan setiap titik sejauh vektornya sendiri: titik pertama sejauh vektor pertama, dan seterusnya.

      Kedua daftar harus sama panjang, atau error dipicu. Contoh: tiga titik dengan tiga vektor -> setiap titik dipindahkan oleh vektornya sendiri

      Parameters

      Returns Point3[]

      Titik-titik yang digeser, dalam urutan yang sama

      const moved = bitbybit.point.translatePointsWithVectors({
      points: [[0, 0, 0], [1, 0, 0]],
      translations: [[0, 1, 0], [0, 2, 0]],
      });
    • Memindahkan setiap titik sejauh nilai x, y dan z yang diberikan.

      Contoh: titik [0,0,0] dengan x=10, y=5, z=0 -> [10,5,0]

      Parameters

      Returns Point3[]

      Titik-titik yang digeser, dalam urutan yang sama

      const lifted = bitbybit.point.translateXYZPoints({ points: [[0, 0, 0], [1, 0, 0]], x: 0, y: 5, z: 0 });
      
    • Menskalakan titik-titik menjauh dari atau mendekati sebuah pusat, dengan faktornya sendiri per sumbu.

      Contoh: titik [10,0,0] terhadap pusat [5,0,0] dengan faktor [2,1,1] -> [15,0,0]

      Parameters

      Returns Point3[]

      Titik-titik yang diskalakan, dalam urutan yang sama

      const stretched = bitbybit.point.scalePointsCenterXYZ({
      points: [[10, 0, 0], [0, 10, 0]],
      center: [0, 0, 0],
      scaleXyz: [2, 1, 1],
      });
    • Meregangkan titik-titik sepanjang satu arah, diukur dari sebuah pusat; jarak melintang terhadap arah itu tetap apa adanya.

      Contoh: titik [10,0,0] dari pusat [0,0,0] sepanjang [1,0,0] dengan skala 2 -> [20,0,0]

      Parameters

      Returns Point3[]

      Titik-titik yang diregangkan, dalam urutan yang sama

      const taller = bitbybit.point.stretchPointsDirFromCenter({
      points: [[0, 1, 0], [0, 2, 0]],
      center: [0, 0, 0],
      direction: [0, 1, 0],
      scale: 2,
      });
    • Merotasi titik-titik mengelilingi sumbu yang melewati sebuah pusat.

      Sudut dalam derajat dan berputar berlawanan arah jarum jam jika sumbu mengarah ke Anda. Contoh: titik [10,0,0] mengelilingi sumbu Y yang melewati [0,0,0] sebesar 90 -> [0,0,-10]

      Parameters

      Returns Point3[]

      Titik-titik yang diputar, dalam urutan yang sama

      const turned = bitbybit.point.rotatePointsCenterAxis({
      points: [[10, 0, 0]],
      center: [0, 0, 0],
      axis: [0, 1, 0],
      angle: 90,
      });
    • Mengulang satu titik sebanyak jumlah tertentu dalam daftar.

      Contoh: titik [5,5,0] tiga kali -> [[5,5,0], [5,5,0], [5,5,0]]

      Parameters

      Returns Point3[]

      Daftar salinan

      const copies = bitbybit.point.multiplyPoint({ point: [5, 5, 0], amountOfPoints: 3 });