Tugas Anda adalah untuk menghidupkan ilusi lingkaran ini . Sepertinya titik-titik berputar di dalam lingkaran, tetapi mereka sebenarnya hanya bergerak dalam garis lurus.
Criterias
- Hasilnya harus dianimasikan. Cara Anda melakukan animasi tidak relevan, dapat menghasilkan
.gif
, dapat menggambar ke jendela, beberapa layar perangkat atau apa pun. - Ini adalah kontes popularitas, jadi Anda mungkin ingin menambahkan beberapa fitur tambahan ke program Anda untuk mendapatkan lebih banyak upvotes, misalnya memvariasikan jumlah poin.
- Pemenangnya adalah jawaban sah yang paling banyak diperbarui 7 hari setelah pengiriman terakhir yang valid.
- Jawaban yang benar-benar akan menerapkan titik bergerak pada garis lurus dan bukan sebaliknya lebih disambut
Jawaban:
Python 3.4
Menggunakan modul kura-kura. Kura-kura adalah warna yang berbeda dan mereka selalu menghadap ke arah yang sama, sehingga mereka dapat dengan mudah terlihat bergerak sepanjang garis lurus dengan hanya berfokus pada salah satu dari mereka. Meskipun demikian, ilusi lingkaran masih kuat.
Ilusi itu tampaknya masih cukup kuat bahkan hanya dengan 3 atau 4 kura-kura:
Framerate sangat berkurang untuk semua contoh GIF ini, tetapi sepertinya tidak mengurangi ilusi. Menjalankan kode secara lokal memberikan animasi yang lebih halus.
Untuk kontras, berikut adalah beberapa yang benar-benar berputar:
... atau mereka?
Kode dapat dijalankan dengan 5 argumen opsional: populasi, resolusi, loop, flip dan garis.
population
adalah jumlah kura-kuraresolution
adalah resolusi waktu (jumlah bingkai animasi per pengulangan)loops
menentukan berapa kali kura-kura kembali pada diri mereka sendiri. Default 1 memberikan lingkaran standar, angka ganjil lainnya memberikan jumlah loop dalam string kura-kura, sementara angka genap memberikan string kura-kura yang terputus di ujungnya, tetapi masih dengan ilusi gerakan melengkung.flip
jika bukan nol menyebabkan kura-kura membalik arah untuk perjalanan kembali mereka (seperti yang disarankan oleh aslum sehingga mereka tidak pernah bergerak mundur). Sebagai default mereka menjaga arah tetap untuk menghindari gangguan visual di titik akhir.lines
jika bukan nol menampilkan garis di mana kura-kura bergerak, untuk konsistensi dengan contoh gambar dalam pertanyaan.Contoh dengan
flip
set, dengan dan tanpalines
. Saya telah meninggalkan contoh utama saya di atas tanpa flip karena saya lebih suka untuk tidak memiliki lompatan sporadis, tetapi tepi lingkaran memang terlihat lebih halus dengan semua kura-kura sejajar, jadi ada pilihan bagi orang untuk memilih gaya mana pun yang mereka sukai ketika menjalankan Kode.Mungkin tidak segera jelas bagaimana gambar di atas dihasilkan dari kode yang sama. Khususnya gambar lebih lanjut yang memiliki loop luar yang lambat dan loop dalam yang cepat (yang terlihat seperti cardioid yang secara tidak sengaja dijatuhkan seseorang). Saya telah menyembunyikan penjelasan di bawah ini jika ada yang ingin menunda mencari tahu saat bereksperimen / berpikir.
Mencoba angka yang berbeda, saya menemukan beberapa distorsi ini lebih menarik daripada yang asli lebih simetris, jadi saya ingin memasukkan satu di sini ...
sumber
C
Hasil:
sumber
system("cls"); // xD
SVG (tanpa Javascript)
Tautan JSFiddle di sini
sumber
http://jsfiddle.net/z6vhD/13/
intervaltime
mengubah FPS (FPS = 1000 / intervaltime).balls
mengubah bola #.maxstep
menyesuaikan langkah # dalam satu siklus, semakin besar 'halus' itu. 64 harus cukup besar di tempat yang terlihat halus.Dimodelkan sebagai lingkaran yang bergerak, bukannya menggerakkan bola di sepanjang garis, tetapi efek visual (seharusnya?) Sama. Beberapa kode cukup bertele-tele, tetapi ini bukan kode golf, jadi ...
sumber
requestAnimationFrame
saja . JSFiddle dimodifikasi menggunakanrequestAnimationFrame
.Animasi CSS
Solusi yang hanya menggunakan animasi css (lihat animasi di JSFiddle - perhatikan bahwa saya menambahkan awalan khusus peramban di biola agar dapat bekerja di sebagian besar versi terbaru).
sumber
-webkit-
untuk berbasis Webkit dan-moz-
untuk berbasis Mozilla) Berikut adalah biola yang sama dengan awalan yang diperbarui: jsfiddle.net/nBCxz/3Mathematica
Ini adalah pengajuan yang cukup mudah.
Jika Anda menelepon,
animateCircle[32]
Anda akan mendapatkan animasi yang rapi dengan 32 garis dan lingkaran.Ini benar-benar mulus di Mathematica, tapi saya harus membatasi jumlah frame untuk GIF sedikit.
Sekarang apa yang terjadi jika Anda meletakkan dua disk di setiap baris? (Yaitu, tambahkan
Disk[-Sin[t + phase]*line, 0.05]
ke daftar di dalamMap
.)Anda juga dapat menempatkan mereka 90 ° di luar fase (gunakan
Cos
sebagai ganti-Sin
):sumber
{t, 0, 2 \[Pi]}
ke{t, 0, 2 \[Pi] - 2 \[Pi]/60, 2 \[Pi]/60}
sehingga tidak akan ada dua frame identik dan berubahAnimate
keTable
. Maka Anda dapat mengekspor GIF.Animate
). Saya akan mencoba menggunakanTable
lagi.VBScript + VBA + Diagram Pie Excel
Ini akan membuat prosesor Anda sedikit menangis tetapi terlihat cantik dan saya percaya itu bekerja sesuai dengan spesifikasi. Saya menggunakan jawaban @ Fabricio sebagai panduan untuk menerapkan algoritma gerakan lingkaran.
EDIT: Buat beberapa penyesuaian untuk meningkatkan kecepatan render.
Kode:
sumber
Excel, 161 byte
A2 (titik) menentukan waktu (detik) untuk 'revolusi' penuh.
Setiap sel dalam garis adalah persyaratan dasar yang berkaitan dengan nilai garis yang sesuai. Misalnya, K2 adalah:
Dan sel tengah (K9) adalah:
Paksa animasi dengan menahan 'hapus' pada sel acak untuk terus memicu penyegaran.
Saya tahu ini adalah topik lama, tetapi kegiatan baru-baru ini membawanya ke atas dan sepertinya menarik karena beberapa alasan. Pendengar pcg lama, penelepon pertama kali. Bersikaplah lembut.
sumber
Hanya untuk bersenang-senang dengan PSTricks.
sumber
Fortran
Setiap frame dibuat sebagai file gif individual menggunakan modul Fortran gif di: http://fortranwiki.org/fortran/show/writegif
Lalu saya sedikit curang dengan menggunakan ImageMagick untuk menggabungkan masing-masing gif menjadi satu gif animasi.
UPDATE: Set new = .true. untuk mendapatkan yang berikut ini:
sumber
Versi C64 wajib .
Salin & tempel di emulator favorit Anda:
sumber
Versi javascript ringkas, mengubah pengaturan default menjadi sesuatu yang berbeda
http://jsfiddle.net/yZ3DP/1/
HTML:
JavaScript:
sumber
bw=10
). Harap edit jawaban Anda untuk menunjukkan kode Anda. Oh, dan saat Anda melakukannya, ada bug yang harus Anda perbaiki: gantitime+i*0.39*0.29
dengantime+i*Math.PI/num
dalam perhitungan trigonometri sehingga koordinat dihitung dengan benar untuk nilai berapa punnum
. (PS JSFiddle Diperbarui di sini . Dan selamat datang di codegolf.stackexchange.com)Saya ambil dengan Elm . Saya seorang pemula total yang dengan senang hati akan menerima PR untuk meningkatkan solusi ini ( GitHub ):
Perhatikan bahwa pengajuan ini adalah benar-benar titik bergerak pada garis lurus:
sumber
LSL Kehidupan Kedua
mulai dari gambar alpha kura-kura (klik kanan di bawah untuk menyimpan gambar)
akhir gambar alpha kura-kura (klik kanan di atas untuk menyimpan gambar)
membangun objek:
membuat ukuran silinder root primer <1, 1, 0,01> irisan 0,49, 0,51, warna < 0, 0, 0>
buat deskripsi silinder ini "8,1,1,1" tanpa tanda kutip (sangat penting)
buat silinder, beri nama "cyl", warna <0,25, 0,25, 0,25> alpha 0,5
duplikat cyl 48 kali
membuat kotak,
beri nama "sphere", warna <1, 1, 1> transparansi 100 kecuali untuk transparansi teratas 0 letakkan tekstur kura-kura Anda di wajah 0 kotak, kura-kura harus menghadapi + x
duplikat kotak 48 kali
pilih semua kotak dan silinder, pastikan untuk memilih silinder akar yang terakhir,tautan (kontrol L)
letakkan 2 skrip ini di root:
sumber