Desain Mudah - Turtle Graphics Python

Lihatlah keindahan gambar-gambar itu. Hal-hal seperti inilah yang membuat saya menjadi kura-kura. Sejujurnya, saya adalah penggemar Logo MS pada usia 7, jadi ketika saya membaca hal yang sama yang disebut 'Turtle', saya secara alami skeptis. Tidak lagi.

Secara umum, programer elit menepis kura-kura sebagai 'primitif', tapi saya mohon berbeda.

Dalam Instructable ini, saya akan menulis panduan yang sangat sederhana untuk kura-kura, dengan Python.

Penggunaan lain yang bagus untuk kura-kura adalah mengajar anak-anak pemrograman dasar. Yang muda terpesona oleh desain yang menarik secara visual daripada teks.

Mari kita mulai.

EDIT: Untuk beberapa alasan, kode memiliki html di dalamnya, seperti

,

, ketika saya mengunggahnya. Jika demikian, ada file notepad dengan kedua kode. Unduh itu. Saya harap masalah ini diperbaiki :(

Langkah 1: Python

Untuk tutorial ini saya akan menggunakan Python 2.7. 1.) Python dapat diunduh secara gratis di sini. (Saya menggunakan versi khusus ini, tetapi terserah Anda apa yang ANDA inginkan.) Sekalipun Anda tidak tahu Python, Anda bisa berkeliaran, tetapi cobalah belajar bahasa tersebut. Menurut saya, ini adalah bahasa yang sangat sederhana namun kuat.

Turtle adalah modul bawaan, dan dapat diimpor, jadi kita tidak perlu mengimpornya.

Sederhananya, modul adalah kumpulan fungsi pemrograman yang mudah dipanggil, yaitu perintah bagi komputer untuk mengikuti serangkaian langkah tertentu untuk mendapatkan hasil.

Langkah 2: Desain Pertama: Kode & Penjelasan

# Apa yang muncul setelah # tidak terlihat oleh python. Ini adalah komentar. :)

dari impor penyu * # mengimpor penyu modul,
# * adalah singkatan dari semua, yang membuat segalanya lebih mudah

speed (0) # mengatur kecepatan gambar ke 0, yang merupakan tercepat
pencolor ('white') # mengatur warna pena / garis menjadi putih
bgcolor ('black') # mengatur warna latar / kanvas menjadi hitam

x = 0 # menciptakan variabel x dengan nilai 0
up () # mengangkat pena, sehingga tidak ada garis yang ditarik

#note fd () berarti bergerak maju, bk () berarti mundur
# rt () atau lt () berarti miring ke kanan dengan sudut tertentu

rt (45)
fd (90)
rt (135)

down () # meletakkan pena, sehingga kura-kura bisa menggambar
sementara x <120: # sedangkan nilai x lebih kecil dari 120,
#terus menerus melakukan ini:
fd (200)
rt (61)
fd (200)
rt (61)
fd (200)
rt (61)
fd (200)
rt (61)
fd (200)
rt (61)
fd (200)
rt (61)

rt (11.1111)
x = x + 1 # menambahkan 1 ke nilai x,
# sehingga lebih dekat ke 120 setelah setiap loop

exitonclick () # Saat Anda mengklik, kura-kura keluar.

#Itu saja! Coba ubahsuaikan skrip! 8)

Kode ini adalah kecepatan penjelas sendiri (), pencolor (), fd (), rt (), lt (), dll. Semuanya adalah fungsi. Pada dasarnya mereka adalah instruksi untuk diikuti oleh Python. Hasilnya akan menjadi indah.

Daripada tetap seperti ini, cobalah menggunakan logika sederhana untuk membuat desain yang lebih indah.

Setelah menyimpan dengan menekan Ctrl + S, jalankan dengan menekan F5. Hasilnya berupa video.

Lampiran

  • Unduh TurtleCode1.txt

Langkah 3: Desain Kedua: Cool Spiral

Apa yang harus saya katakan? Keindahan kode adalah menghasilkan kombinasi warna yang unik setiap kali dijalankan.

Kode ini sekali lagi dikomentari dengan baik dan cukup jelas. Ada juga video.

dari impor penyu *

dari acak impor randint # dari modul acak mengimpor fungsi randint
# like turtle itu adalah modul, baca dulu untuk digunakan

kecepatan (0)

bgcolor ('hitam')

x = 1

sementara x <400:

r = randint (0, 255) #membuat variabel r, g, b yang nilainya bilangan bulat,
g = randint (0, 255) # yaitu antara 0 dan 255. Itu acak, dan
b = randint (0, 255) # berubah setiap kali loop dijalankan

colormode (255) # ini adalah sesuatu yang tidak relevan pada titik ini
# periksa tautan pythondocs di bagian akhir untuk info lebih lanjut


pencolor (r, g, b) # mengubah warna pena ke koordinat rgb
# diperoleh oleh variabel r, g, b berubah setiap kali

fd (50 + x)
rt (90.911)


x = x + 1

keluaronklik ()

#again, coba ubahsuaikan :)

Lampiran

  • Unduh TurtleCode2.txt

Langkah 4: Kesimpulan

Sebangga Anda pada saat ini, Anda baru saja menggaruk permukaan. Orang membuat hal-hal serumit pohon fraktal dengan python.

Jika kura-kura adalah hal Anda, periksa kura-kura dan pelajari lebih lanjut di PythonDocs, di mana ia didokumentasikan dengan baik. Ada banyak aspek lagi seperti isi, dan lingkaran. Bereksperimen dan bersenang-senanglah.

Saya harap saya telah menginspirasi seseorang, dan mereka terus belajar python. Menurut saya ini adalah bahasa pemrograman yang paling sederhana, namun paling kuat.

Untuk lebih mengesankan Anda, saya meninggalkan kode untuk segitiga pelangi. Yang ini adalah versi khusus dari pertanyaan StackOverflow:

impor penyu
turtle.setup (lebar = 600, tinggi = 500)
turtle.reset ()
turtle.hideturtle ()
turtle.speed (0)

turtle.bgcolor ('hitam')

c = 0
x = 0

warna = [
Warna #reddish
(1, 00, 0, 00, 0, 00), (1, 00, 0, 03, 0, 00), (1, 00, 0, 05, 0, 00), (1, 00, 0, 07, 0, 00), (1, 00, 0, 10, 0, 00), (1, 00, 0, 12, 0, 00), (1, 00, 0, 15, 0, 00), (1, 00, 0, 17, 0, 00), (1, 00, 0, 20, 0, 00), (1, 00, 0, 23, 0, 00), (1, 00, 0, 25, 0, 00), (1, 00, 0, 28, 0, 00), (1, 00, 0, 30, 0, 00), (1, 00, 0, 33, 0, 00), (1, 00, 0, 35, 0, 00), (1, 00, 0, 38, 0, 00), (1, 00, 0, 40, 0, 00), (1, 00, 0, 42, 0, 00), (1, 00, 0, 45, 0, 00 ), (1, 00, 0, 47, 0, 00),
Warna #orangey
(1, 00, 0, 50, 0, 00), (1, 00, 0, 53, 0, 00), (1, 00, 0, 55, 0, 00), (1, 00, 0, 57, 0, 00), (1, 00, 0, 60, 0, 00), (1, 00, 0, 62, 0, 00), (1, 00, 0, 65, 0, 00), (1, 00, 0, 68, 0, 00), (1, 00, 0, 70, 0, 00), (1, 00, 0, 72, 0, 00), (1, 00, 0, 75, 0, 00), (1, 00, 0, 78, 0, 00), (1, 00, 0, 80, 0, 00), (1, 00, 0, 82, 0, 00), (1, 00, 0, 85, 0, 00), (1, 00, 0, 88, 0, 00), (1, 00, 0, 90, 0, 00), (1, 00, 0, 93, 0, 00), (1, 00, 0, 95, 0, 00 ), (1, 00, 0, 97, 0, 00),
Warna #yellowy
(1, 00, 1, 00, 0, 00), (0, 95, 1, 00, 0, 00), (0, 90, 1, 00, 0, 00), (0, 85, 1, 00, 0, 00), (0, 80, 1, 00, 0, 00), (0, 75, 1, 00, 0, 00), (0, 70, 1, 00, 0, 00), (0, 65, 1, 00, 0, 00), (0, 60, 1, 00, 0, 00), (0, 55, 1, 00, 0, 00), (0, 50, 1, 00, 0, 00), (0, 45, 1, 00, 0, 00), (0, 40, 1, 00, 0, 00), (0, 35, 1, 00, 0, 00), (0, 30, 1, 00, 0, 00), (0, 25, 1, 00, 0, 00), (0, 20, 1, 00, 0, 00), (0, 15, 1, 00, 0, 00), (0, 10, 1, 00, 0, 00 ), (0, 05, 1, 00, 0, 00),
#warna hijau
(0, 00, 1, 00, 0, 00), (0, 00, 0, 95, 0, 05), (0, 00, 0, 90, 0, 10), (0, 00, 0, 85, 0, 15), (0, 00, 0, 80, 0, 20), (0, 00, 0, 75, 0, 25), (0, 00, 0, 70, 0, 30), (0, 00, 0, 65, 0, 35), (0, 00, 0, 60, 0, 40), (0, 00, 0, 55, 0, 45), (0, 00, 0, 50, 0, 50), (0, 00, 0, 45, 0, 55), (0, 00, 0, 40), 0, 60), (0, 00, 0, 35, 0, 65), (0, 00, 0, 30, 0, 70), (0, 00, 0, 25, 0, 75), (0, 00, 0, 20, 0, 80), (0, 00, 0, 15, 0, 85), (0, 00, 0, 10, 0, 90 ), (0, 00, 0, 05, 0, 95),
Warna #blueish
(0, 00, 0, 00, 1, 00), (0, 05, 0, 00, 1, 00), (0, 10, 0, 00, 1, 00), (0, 15, 0, 00, 1, 00), (0, 20, 0, 00, 1, 00), (0, 25, 0, 00, 1, 00), (0, 30, 0, 00, 1, 00), (0, 35, 0, 00, 1, 00), (0, 40, 0, 00, 1, 00), (0, 45, 0, 00, 1, 00), (0, 50, 0, 00, 1, 00), (0, 55, 0, 00, 1, 00), (0, 60, 0, 00, 1, 00), (0, 65, 0, 00, 1, 00), (0, 70, 0, 00, 1, 00), (0, 75, 0, 00, 1, 00), (0, 80, 0, 00, 1, 00), (0, 85, 0, 00, 1, 00), (0, 90, 0, 00, 1, 00 ), (0.95, 0.00, 1.00)
]

sementara x <1000:
idx = int (c)
color = colors [idx]
turtle.color (warna)
turtle.forward (x)
turtle.right (98)
x = x + 1
c = c + 0, 1

turtle.exitonclick ()

Sebagai tugas, cobalah membuat Segitiga Sierpinski. Butuh banyak pemikiran.

Juga, silakan pilih instruksi ini jika Anda menyukainya !!!

Artikel Terkait