Python Turtle ile şekil çizme, kalem hareketlerini döngülerle birleştirerek öğrenilir. Tekrar sayısını, Turtle’ın kullandığı mesafe birimini ve dönüş açısını planladığında kodun ekranda oluşturacağı görsel çıktıyı önceden tahmin edebilirsin.
Başlangıçta tek bir hareketi dene, ardından aynı hareketi for döngüsüyle tekrarla. Böylece çizim, rastgele komutlar toplamı değil, tekrar, mesafe ve açı arasında kurulmuş anlaşılır bir plan olur.
Turtle çiziminde tekrar, mesafe ve açı nasıl planlanır?
Bir çizimi planlarken üç soruyu sırayla cevapla: Kaç kez hareket edilecek, her harekette kaç mesafe birimi ilerlenilecek ve her adımın sonunda kaç derece dönülecek? İlk cevap döngünün tekrar sayısını, ikincisi şeklin boyutunu, üçüncüsü de yön değişimini belirler.
import turtle ekranda hemen şekil çizmez, Turtle araçlarını programa açar. kalem = turtle.Turtle() bir kalem nesnesi oluşturur ve çizim için varsayılan ekranı kullanır. kalem.forward(80), Turtle’ı baktığı yönde 80 mesafe birimi ilerletir ve kalem aşağıdaysa çizgi bırakır. kalem.right(90), konumu değiştirmeden yönü sağa doğru 90 derece çevirir. kalem.penup() ile yapılan sonraki hareketler çizgi oluşturmaz, kalem.pendown() ise sonraki hareketlerde çizimi yeniden etkinleştirir. for _ in range(4): biçimindeki döngü, girintili komutları dört kez çalıştırarak tek bir kenar hareketini dört kenarlı bir çizime dönüştürür.
Çizim planını kurarken önce küçük bir mesafe seçip sonucu izle. Şekil çok genişse mesafeyi, eksik ya da fazla köşe oluşuyorsa tekrar sayısını ve açıyı ayrı ayrı değiştir. Her seferinde tek değişkeni değiştirmek, hangi kararın görsel çıktıyı etkilediğini görmeyi kolaylaştırır.
Python öğrenme sürecini kişiye özel bir müfredatla sürdürmek istersen Python Özel Ders programının yapısını inceleyebilirsin. Turtle çizimlerini de kendi uygulama dosyaların arasında tutarak ilerlemeni takip edebilirsin.
Kare ve düzenli çokgenlerde dönüş açısı nasıl hesaplanır?

Kare, dört kenarın her birinde aynı mesafeyi çizip her köşede 90 derece dönerek oluşturulur. Bu nedenle döngü dört kez çalışır, forward(80) her kenarı aynı uzunlukta çizer ve right(90) bir sonraki kenarın yönünü hazırlar.
import turtle
kalem = turtle.Turtle()
kalem.pendown()
for _ in range(4):
kalem.forward(80)
kalem.right(90)
turtle.mainloop()
Beklenen görsel çıktı, başlangıç noktasına dönen bir karedir. range(4) tekrar sayısını, forward(80) kenar uzunluğunu, right(90) ise köşe dönüşünü belirler. forward içindeki 80 değerini büyütmek karenin türünü değil, boyutunu değiştirir.
Genel düzenli çokgende aynı mantık korunur: kenar_sayisi kaç kenar çizileceğini, mesafe her kenarın uzunluğunu belirler. Bir tam dönüş 360 derece olduğu için her köşede kullanılacak dönüş açısı, toplam dönüşün kenar sayısına bölünmesiyle bulunur. Python Turtle’da right() açısı başlangıç ayarında derece cinsinden yorumlanır. Bu nedenle beş kenarlı bir şekil için 72, altı kenarlı bir şekil için 60 kullanılır.
Düzenli çokgende dönüş açısı 360 / kenar sayısıdır.
import turtle
kalem = turtle.Turtle()
kalem.pendown()
kenar_sayisi = 5
mesafe = 70
donus = 360 / kenar_sayisi
for _ in range(kenar_sayisi):
kalem.forward(mesafe)
kalem.right(donus)
turtle.mainloop()
Bu kodun beklenen görsel çıktısı, beş eşit kenarlı bir beşgendir. kenar_sayisi değerini 6 yaptığında aynı yapı düzenli altıgen çizer. mesafe değiştiğinde şeklin türü aynı kalır, yalnızca çizimin boyutu değişir.
Şekil çizme alıştırmalarına başlamadan önce Python bilgi seviyeni yoklamak için Python bilgi testi ile mevcut durumunu gözden geçirebilirsin.
penup, pendown ve iç içe döngülerle desen nasıl oluşturulur?
penup() kalemi kaldırır ve Turtle hareket ederken çizgi oluşturmaz. pendown() kalemi yeniden indirir, sonraki hareketlerde çizim devam eder. Bu iki komut, bir şekli tamamladıktan sonra başka bir konuma geçerken arada istenmeyen bağlantı çizgileri oluşmasını önler.
import turtle
turtle.speed(0)
turtle.penup()
turtle.goto(-180, 0)
turtle.pendown()
for sira in range(5):
for kenar in range(3):
turtle.forward(45)
turtle.left(120)
if sira < 4:
turtle.penup()
turtle.forward(75)
turtle.pendown()
turtle.done()
Bu kodun çıktısında yatay sırada beş ayrı eşkenar üçgen görünür. İç döngü, her üçgenin üç kenarını çizer. Dış döngü ise aynı şekli beş kez tekrarlar. Her kenar 45 Turtle mesafe birimidir. Üçgenin her kenarından sonra yapılan 120 derecelik dış dönüş, şeklin kapanmasını sağlar. Şekiller arasındaki 75 birimlik ilerleme kalem yukarıdayken gerçekleştiği için üçgenler birbirine bağlanmaz.
İç içe döngü mantığını pekiştirmek için Python bilgi testini çözüp özellikle for döngüsü ve koşul ifadeleri konusundaki durumunu görebilirsin. İç döngü şeklin parçalarını, dış döngü ise şeklin kaç kez ve hangi düzenle tekrarlanacağını yönetir.
Renkli, tekrar eden geometrik desen projesi nasıl yapılır?

Şimdi her tekrarda yönünü 15 derece değiştiren karelerle ortak merkez çevresinde oluşan renkli bir rozet tasarlayalım. Karelerin merkezde üst üste gelmesi için her karenin başlangıç köşesi matematiksel olarak hesaplanır.
import math
import turtle
kenar = 80
yaricap = kenar / math.sqrt(2)
renkler = ["red", "blue", "green", "orange"]
turtle.speed(0)
turtle.pensize(2)
for sira in range(24):
aci = sira * 15
x = yaricap * math.cos(math.radians(aci))
y = yaricap * math.sin(math.radians(aci))
turtle.penup()
turtle.goto(x, y)
turtle.setheading(aci + 135)
turtle.pendown()
turtle.pencolor(renkler[sira % len(renkler)])
for kenar_sayisi in range(4):
turtle.forward(kenar)
turtle.left(90)
turtle.done()
- İç döngü: Dört tekrarın her birinde 80 Turtle mesafe birimi ilerlenir ve 90 derece dönülür. Böylece dört kenarlı bir kare tamamlanır.
- Dış döngü: Kare 24 kez çizilir.
aci = sira * 15ifadesi, her yeni karenin yönünü 15 derece değiştirir. - Merkez hesabı:
kenar / math.sqrt(2)değeri, karenin merkezden köşeye uzaklığını verir. Bu sayede bütün kareler aynı merkez çevresinde üst üste gelir. - Renk değişimi:
turtle.pencolor()her kareden önce çizgi rengini seçer. Modulo işlemi, renk listesini sırayla tekrar kullanır.turtle.done()ise çizim tamamlandıktan sonra pencerenin açık kalmasını sağlar.
Beklenen çıktı, ortak merkez etrafında dönen 24 renkli kareden oluşan rozet biçimli bir desendir. Döngü sayılarını, 80 birimlik kenar mesafesini veya 15 derecelik dış dönüşü değiştirerek desenin yoğunluğunu ve görünümünü deneyebilirsin. Python öğrenme sürecinde bu tür projeleri birebir yönlendirmeyle geliştirmek için Python Özel Ders programı hakkında bilgi alabilirsin.
Kendi Turtle desenini tasarlamak için kaç tekrar, kaç birim, kaç derece?
Bir Turtle deseni tasarlarken dış tekrar sayısını, şeklin kenar sayısını, her kenarın uzunluğunu ve dönüş açılarını ayrı ayrı belirle. Düzenli çokgende dönüş açısı = 360 / kenar sayısı formülüyle bulunur. Beş kenarlı bir şekil için bu açı 360 / 5 = 72 derece olur.
import turtle
turtle.speed(0)
renkler = ["#e63946", "#457b9d", "#2a9d8f", "#f4a261", "#8338ec"]
for i in range(10):
turtle.pencolor(renkler[i % len(renkler)])
for _ in range(5):
turtle.forward(70)
turtle.right(72)
turtle.right(36)
turtle.done()
Bu kod, her biri 70 Turtle mesafe birimi uzunluğunda kenarlara sahip 10 beşgen çizer. Beşgenler her tekrarda 36 derece döndüğü için aynı merkez çevresinde renkleri değişen, rozet veya çiçek benzeri bir desen oluşur. 10 tekrarın sonunda toplam yön değişimi 360 dereceye ulaşır. Turtle'da hareket, renk ve kalem durumunu yöneten forward(), right(), pencolor(), penup() ve pendown() işlevleri bu tür çizimlerde birlikte kullanılabilir.
| Soru | Kod karşılığı | Görsel etkisi |
|---|---|---|
| Dış döngü kaç kez çalışacak? | range(10) |
10 kopya daha dolgun ve yoğun bir desen oluşturur. |
| Şeklin kaç kenarı ve iç tekrar kaç? | range(5) |
Her tekrar beş kenarlı bir şekil çizer. |
| İleri hareket mesafesi kaç? | forward(70) |
Değer büyüdükçe desenin kapladığı alan genişler. |
| Dönüş açısı kaç derece? | İçte 72, dışta 36 |
72 derece beşgeni kapatır, 36 derece kopyaları döndürür. |
| Kalem hangi durumda? | penup() ve pendown() |
Konum değiştirirken çizgiyi keser, çizim sırasında yeniden başlatır. |
| Renk nasıl seçiliyor? | pencolor(renkler[i % len(renkler)]) |
Her dış tekrarda farklı bir renk kullanılabilir. |
Bu çerçevede 70 birim orta büyüklükte bir başlangıç deseni sağlar. Mesafeyi artırırsan şekiller büyür, dış tekrar sayısını azaltırsan desen daha seyrek görünür. 36 derecelik yön değişimi korunurken tekrar sayısını değiştirmek, desenin tam bir dönüşü ne kadar sürede tamamladığını da etkiler.
- Yalnızca bir değişkeni değiştir.
- Çalıştırmadan önce beklenen görsel farkı tahmin et.
- Sonucu kısa bir notla önceki çizimle karşılaştır.
Python temellerini öz değerlendirmeyle kontrol etmek için Python bilgi testini kullanabilirsin.
Turtle pratiği Python öğrenme planına nasıl bağlanır?
Turtle çalışmasını küçük deneylere bölersen döngü, değişken, fonksiyon ve hata ayıklama becerilerini aynı proje içinde gözlemleyebilirsin.
- Kenar sayısı: İç döngüdeki tekrar değerini değiştir ve şeklin nasıl dönüştüğünü incele. Düzenli çokgen için dönüş açısını kenar sayısıyla uyumlu tut.
- Mesafe:
70değerini değiştirerek desenin büyüklüğünü karşılaştır. - İç tekrar: Çizilen kenar sayısını değiştir ve şeklin kapanıp kapanmadığını kontrol et.
- Dış tekrar:
10yerine daha az veya daha çok tekrar kullanarak desen yoğunluğunu gözlemle. - Kalem konumu: Yeni noktaya giderken
penup(), çizime başlarkenpendown()kullan.
Beklenmeyen bir sonuçta önce girintiyi, range() sınırlarını, dönüş açısını ve kalemin kaldırılmış olup olmadığını kontrol et. Turtle çizimi görünmüyorsa komutların gerçekten çalıştığından ve kodun sonunda pencereyi açık tutacak turtle.done() çağrısının bulunduğundan emin ol.
Python temellerini kişiye özel ve düzenli bir çalışma düzeniyle sürdürmek istersen Python Özel Ders programını inceleyebilirsin. Python Turtle ile şekil çizme öğrenmenin en verimli yolu, komutları yalnızca izlemek yerine tekrarları, mesafeleri ve açıları değiştirerek kendi desenlerini üretmektir.
Sık Sorulan Sorular
Python Turtle çizimi neden görünmüyor veya pencere hemen kapanıyor?
Kodda import turtle satırının bulunduğunu, komutlarda yazım hatası olmadığını ve programın sonunda turtle.done() çağrısının yer aldığını kontrol et. Hata mesajı varsa önce mesajın gösterdiği satırı incele.
penup() ve pendown() hangi durumlarda kullanılır?
penup(), Turtle hareket ederken çizgi bırakmamasını sağlar. Yeni bir konuma geçtikten sonra çizime devam etmek için pendown() kullanılır. Böylece şekiller arasında istenmeyen bağlantı çizgileri oluşmaz.
Bir Turtle deseninde yalnızca dönüş açısını değiştirince ne olur?
Dış döngüdeki açıyı değiştirirsen şekillerin yönü, üst üste gelme biçimi ve desenin yoğunluğu değişir. İç döngüdeki açıyı değiştirirsen çizilen şeklin geometrisi ve kapanma biçimi de değişebilir.
Kısacası Turtle, döngüleri ve açıları görsel bir sonuca dönüştürerek Python pratiğini üretilebilir bir çalışmaya çevirir.