Mengubah segmen, pasangan [start, end], menjadi objek garis.
Contoh: [[0,0,0], [10,5,0]] -> { start: [0,0,0], end: [10,5,0] }
Segmen
Garis
Mengubah setiap segmen, pasangan [start, end], menjadi objek garis.
Contoh: tiga segmen -> tiga garis, dalam urutan yang sama
Segmen-segmen
Satu garis per segmen
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] }
Titik awal dan akhir
Objek garis
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]]
Titik awal dan akhir
Segmen sebagai [start, end]
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]
Titik-titik, secara berurutan
Satu garis per pasangan titik yang bertetangga
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
Titik-titik awal dan titik-titik akhir, dalam urutan yang berpadanan
Satu garis per pasangan, melewati pasangan berpanjang 0
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]
Garis dan fraksi di sepanjangnya
Titik pada garis
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]
Kedua garis, apakah tetap di dalam segmen, dan toleransi
Titik perpotongan, atau undefined jika tidak ada
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] }
Garis dan transformasi
Garis baru dengan ujung-ujung yang ditransformasi
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
Garis-garis dan satu transformasi per garis
Garis-garis yang ditransformasi, dalam urutan yang sama
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.