Ini adalah tantangan kedua dari dua "menarik fungsi tegang". Inilah Bagian I yang sedikit lebih sederhana .
Mari kita pindahkan kuku ke papan pada posisi (x 1 , y 1 ) ke (x m , y m ) . Ikatkan karet gelang ke yang pertama dan terakhir, dan regangkan di sekitar kuku lainnya, sehingga pita tersebut melintasi semua kuku secara berurutan. Perhatikan bahwa karet gelang sekarang menggambarkan fungsi parameterised linear piecewise (x (t), y (t)) dalam ruang 2D.
Sekarang drive n kuku lainnya ke papan, pada posisi (x 1 , y 1 ) ke (x n , y n ) . Jika sekarang kita menghapus semua asli m kuku kecuali yang pertama dan terakhir satu (yang ujung karet terikat), karet gelang akan mempersingkat sampai berbohong kencang di sekitar kuku baru, menghasilkan piecewise lain linear fungsi.
Sebagai contoh, ambil m = 12 paku awal pada posisi (0, 0), (2, -1), (3/2, 4/3), (7/2, 1/3), (11/2, 16/3), (1, 16/3), (0, 1), (7, -2), (3, 4), (8, 1), (3, -1), (11, 0) , dan n = 10 paku lebih lanjut pada posisi (1, 1), (3, 1), (4, 4), (1, 3), (2, 2), (5, -1), (5, 0) ), (6, 2), (7, 1), (6, 0) . Tiga plot berikut menunjukkan proses yang dijelaskan di atas:

Untuk versi yang lebih besar: Klik kanan -> Buka di tab baru
Dan inilah animasi pengetatan karet gelang jika Anda mengalami kesulitan memvisualisasikannya:

Tantangan
Diberi dua daftar "paku", plot karet gelang kencang di sekitar daftar kedua jika dimulai dari bentuk melintasi semua paku di daftar pertama.
Anda dapat menulis program atau fungsi dan mengambil input melalui STDIN, ARGV atau argumen fungsi. Anda dapat menampilkan hasilnya di layar atau menyimpan gambar ke file.
Jika hasilnya dirasterisasi, setidaknya perlu 300 piksel di setiap sisi. Karet gelang dan paku terakhir harus menutupi setidaknya 75% dari batas gambar horisontal dan vertikal. Skala panjang x dan y harus sama. Anda harus menunjukkan paku di set kedua (menggunakan setidaknya 3x3 piksel) dan string (setidaknya 1 piksel lebar). Anda mungkin atau mungkin tidak termasuk sumbu.
Warna adalah pilihan Anda, tetapi Anda membutuhkan setidaknya dua warna yang dapat dibedakan: satu untuk latar belakang dan satu untuk kuku dan tali (meskipun mungkin memiliki warna yang berbeda).
Anda dapat mengasumsikan bahwa semua paku pada daftar kedua setidaknya 10 -5 unit jauhnya dari bentuk awal karet gelang (sehingga Anda tidak perlu khawatir tentang ketidaktepatan titik mengambang).
Ini kode golf, jadi jawaban tersingkat (dalam byte) menang.
Lebih banyak contoh
Berikut adalah dua contoh lagi:
{{1, 1}, {3, 3}, {2, 4}, {1, 3}, {4, 0}, {3, -1}, {2, 0}, {4, 2}}
{{2, 1}, {3, 2}, {1, 2}, {4, 1}}

{{1, 1}, {3, 1}, {3, 3}, {1, 3}, {1, 5}, {3, 5}, {-1, 3}, {-1, 0}, {3, 4}, {5, 1}, {5, -1}, {7, -1}, {3, 7}, {7, 5}}
{{0, 0}, {0, 2}, {0, 4}, {0, 6}, {2, 0}, {2, 2}, {2, 4}, {2, 6}, {4, 0}, {4, 2}, {4, 4}, {4, 6}, {6, 0}, {6, 2}, {6, 4}, {6, 6}}

Dan di sini adalah salah satu contoh yang menunjukkan pentingnya dua kuku awal yang tersisa. Hasilnya harus b dan tidak a :
{{0, 0}, {0, 1}, {-1, 1}, {-1, -1}, {1, -1}, {1, 0}}
{{-0.5, 0.5}}

Terima kasih kepada Ell karena memberikan contoh ini.






