Tantangan Anda adalah menggambar / merencanakan salah satu hati di bawah ini. Ukurannya harus minimal 50x50 piksel (grafik vektor OK). Anda dapat memilih hati mana yang ingin Anda gambar / plot. Sumbu, garis kisi, dll. Diterima. Paling tidak harus ada 100 koordinat / titik berbeda pada grafik. Jantung bisa diisi dengan warna jika Anda mau.
Persamaannya adalah:
atau
t
berada dalam jangkauan [-1, 1]
.
atau
atau
Ini adalah kode-golf sehingga kode terpendek (dalam setiap bahasa) dalam byte menang. Harap berikan output (atau tautan ke juru bahasa online).
sumber
IF (X²+ANS²-1)³-X²ANS³<0
denganIF (X²+ANS²-1)³<X²ANS³
?Perl, 86 byte
Jalankan dengan
perl -E
.Plot hati ASCII yang terisi, menggunakan persamaan pertama. Perhatikan bahwa sumbu x direntangkan oleh faktor ~ 1.265: ini untuk menangkal fakta bahwa font terminal biasanya jauh lebih besar secara vertikal daripada horizontal.
Keluaran:
Penjelasan (karena OP memintanya):
Ini hanyalah persamaan pertama, sedikit disusun ulang untuk membuatnya lebih pendek. $ y secara langsung mewakili y dalam rumus. $ _ pada awalnya proporsional dengan x, tetapi dikalikan dengan itu sendiri (
$_*=$_/1e3
), membuatnya proporsional dengan x². Karena x² digunakan dua kali dalam rumus, ini menghemat beberapa byte.1e3
berarti 1000, dan dipilih karena pendek dan hasilnya terlihat bagus.**
adalah operator listrik Perl. Saya menggunakan>0
daripada==0
karena saya ingin hati yang penuh.v60 adalah penyalahgunaan sintaks string-versi kuno untuk menunjukkan karakter dengan kode ASCII 60: '<'.
$ | adalah variabel ajaib yang hanya bisa 0 atau 1. Mengurangi ketika sudah 0 set ke 1. Mengurangi saat 1 secara alami menetapkan ke 0. Dengan demikian, $ | - sering digunakan sebagai flip-flop: setiap kali itu dievaluasi, berganti-ganti antara benar dan salah.
Secara keseluruhan, ungkapan ini kembali sebagai alternatif '<' dan 3.
Terner bersarang. Jika kondisi salah (→ kita berada di luar hati), evaluasikan ke $ ", yang merupakan variabel ajaib yang default ke" "(satu spasi). Jika kondisinya benar (→ kita berada di dalam hati), itu mengevaluasi flip_flop.
Mengevaluasi inner_loop berulang kali, dengan $ _ (variabel "default" Perl) naik dari -40 menjadi 40, dengan peningkatan 1. Mengumpulkan hasil evaluasi tersebut dalam daftar sementara, lalu mencetak semuanya, disatukan, diakhiri dengan baris baru .
Ini menjalankan outer_loop berulang kali, dengan $ y mulai dari 1,24 (1 - (-6 / 25)) hingga -1 (1 - 50/25), dalam penurunan 0,04.
Perhatikan bahwa y dibagi 25, sedangkan x² dibagi 1000, yang sama dengan membagi x dengan sqrt (1000). Faktor ~ 1.265 yang saya sebutkan adalah sqrt (1000) / 25.
sumber
MathematicaWolframAlpha,17151311 byteDicukur 2 byte berkat Martin Ender (kurva hati pertama -> kurva hati 1)
Mencukur 2 byte lagi berkat Martin Ender (kurva hati 1 -> heartcurve1)
Ini mungkin curang (solusi yang jelas), tapi begini saja.
Coba di sini!
Saya yakin ada cara untuk mempersingkat 1st, heart atau curve sehingga Wolfram masih menerimanya.Nah sekarang sudah bebas dari ruang, mungkin semacam singkatan untuk jantung?Apakah saya mendapatkan poin bonus karena memplot 2 dari mereka?
Coba itu di sini!
sumber
heart curve 1
heartcurve1
berhasil.Mathematica, 52 byte
Kita bisa menyimpan satu byte lagi dengan
ContourPlot
tetapi kemudian latar belakangnya menjadi sedikit trippy:Untuk satu byte tambahan kita bisa menggunakan rumus keempat dan
PolarPlot
sebagai gantinya:sumber
Casio fx-7700GH, 21 byte
Fungsi grafik yang tidak disebutkan namanya akan dimasukkan ke dalam salah satu slot fungsi grafik koordinat kutub, kemudian melakukan apa yang tertulis di kaleng.
Rentang grafik harus diatur secara manual (kecuali jika cocok dengan rentang set saat ini), saya atur ke
Xmin=-2.75, Xmax=2.75, Ymin=-4, Ymax=1
.Harus bekerja pada kalkulator Casio Power Graphic Series lainnya juga, dan sangat mungkin nanti kalkulator grafis Casio.
(Ya
sayacukup tua dan berdebu)sumber
MATLAB / Oktaf, 31 byte
sumber
SmileBASIC,
8581 bytesumber
Desmos ,
20 1615 byteV 2:
(=
xx)^.3y=xx+yy-1
)V 1:
V 0:
sumber
xx
bukannyax^2
MATL, 36 byte
Cobalah di MATL Online
sumber
Python,
119116 byteCobalah online
sumber
SageMath, 66 byte
Cobalah online
Sayangnya, nama panjang
implicit_plot
danparametric_plot
(ditambah kebutuhan untuk mendefinisikan variabel selain yang didefinisikan secara implisitx
untuk yang pertama) membuat tiga opsi pertama terlalu lama untuk dipertimbangkan.Terima kasih kepada busukxuan dan Andrea Lazzarotto untuk satu byte
sumber
^.5
bekerja di tempat**.5
?^
XOR.^
dengan**
. Saya bertanya-tanya apakah itu karena tidak dapat menggantikan dengan benar jika diikuti oleh.
**
). Jika Anda mencoba menggunakan^
, Anda akan berakhir dengan peringatan dan hasil yang salah.C,
137133 bytehttp://codepad.org/zqqYUui8
Terima kasih @AlbertRenshaw, saya juga mengubah 100-an menjadi 99-an untuk 2 byte lebih
sumber
v
untuk fungsi, bakat yang bagus. Anda dapat mencukur dua byte dengan mengganti4000
dengan4e3
dan mengganti0.001
dengan1e-3
Jelly , 31 byte
Cobalah online!
atau 35 byte dengan
♥
, daripada*
mengisi: ubah baris tengah ke²+’*3<ç×9829Ọ»⁶
.Bagaimana?
Implements: lebih dari 51 oleh 51 line feed karakter grid terpisah
sumber
JavaScript (ES6),
151147 byteSunting: Disimpan 4 byte berkat @ user2428118. Versi ES7 untuk 143 byte:
sumber
y**3
bukany*y*y
?BBC BASIC, 80
Akan selesai bermain golf besok.
Unduh juru bahasa di http://www.bbcbasic.co.uk/bbcwin/bbcwin.html
Gambar hati yang penuh menggunakan persamaan pertama, yang kami susun ulang dan ambil akar pangkat tiga (ada 3 akar pangkat tiga dari bilangan real, satu real dan 2 kompleks, tetapi kami hanya tertarik pada akar asli di sini.) Kami kemudian mengatur ulang lagi untuk dapatkan kuadrat
y
Menggunakan rumus kuadrat standar untuk ekspresi tipe
ay^2+by+c=0
, dan mengambil keuntungan dari fakta bahwaa
= 1 kita dapatkandimana
-b/2 = (x^0.66)/2
(diwakili olehb
dalam program.)Kami hanya memindai melalui nilai
x
dari kiri ke kanan, menggambar garis vertikal antara setiap pasangan nilai yang valid untuky
membangun bentuk yang solid.ungolfed
sumber
Ruby, 80 byte
Tunjukkan pada Ruby beberapa cinta.
Keluaran:
dengan beberapa baris kosong di atas dan di bawah
sumber
Processing.js:
123119 byteungolfed:
golf:
yang satu ini cukup cheaty karena plot # 2 dari 0 hingga tak terbatas bukan dari -1 ke 1 seperti yang ditunjukkan dalam gambar untuk menghemat dua abs (t). Tetapi secara teknis benar karena ada lebih dari 100 poin.
130 byte "mengoreksi" satu
coba online
Catatan: mungkin ada cara untuk mendapatkan 100 poin pada kanvas 100x100 default dan mencukur pengaturan.
sumber
float
alih-alihint
TI-84 Basic,
4038 byteMirip dengan jawaban & keluaran @ 12Me21, tetapi untuk seri TI-83/84 sebagai gantinya.
sumber
BBC BASIC (BBC Micro) (126 byte)
Ini adalah variasi dari jawaban Level River Street , tetapi untuk iterasi BBC Micro asli dari BBC BASIC.
Anda dapat menyalin dan menempelkan salah satu dari yang berikut ke dalam fungsi tempel JSBeeb yang baru di https://bbc.godbolt.org/ (Sebuah emulator BBC Micro yang didukung JavaScript), setelah disisipkan, tekan Enter di dalam 'layar' untuk menampilkan yang baru prompt, lalu ketik RUN, lalu tekan Enter untuk menjalankan versi mana pun.
bermain golf. (126 byte)
ungolfed. (176 byte)
Baris 7 memerlukan pemeriksaan untuk X, untuk mencegah kesalahan "Log range" ketika X menjadi 0 setengah jalan melalui loop. Selain itu, ini hampir sama. Jauh lebih lambat untuk menggambar pada mesin nyata, yang ditiru JSBeeb dengan cukup baik.
sumber