Python Turtle koordinat sistemi, çizim alanındaki her noktayı (x, y) biçiminde tanımlar. Varsayılan Turtle ekranında ekranın merkezi başlangıç noktasıdır: (0, 0). Yatay çizgi x ekseni, dikey çizgi y ekseni olarak düşünülür; x sağa veya sola, y ise yukarı veya aşağı konumu belirler.
Şekil çizerken önce noktaların koordinatlarını, ardından kaplumbağanın hangi yöne ilerleyeceğini planlamalısın. goto() doğrudan belirli bir hedefe giderken forward() kaplumbağanın mevcut yönüne göre hareket eder.
Turtle ekranında başlangıç noktası ve koordinat eksenleri
Koordinat ikilisi (x, y) şeklinde okunur. İlk sayı, noktanın yatay konumunu, ikinci sayı ise dikey konumunu gösterir. x değeri pozitifse nokta merkezin sağında, negatifse solundadır. y değeri pozitifse üstte, negatifse alttadır. Sıfır değeri, ilgili eksende merkez çizgisi üzerinde bulunulduğunu gösterir.
Örneğin (120, 80) sağ üst bölgeyi ifade eder. (-120, 80) sol üstte, (-120, -80) sol altta, (120, -80) ise sağ altta yer alır. İlk sayının işareti sağ veya solu, ikinci sayının işareti yukarı veya aşağıyı belirler. Bu mantık, şeklin köşelerini çizime başlamadan önce sıralamana yardımcı olur.
Temel Python söz dizimini de pekiştirmek için ücretsiz Sıfırdan Temel Python video eğitimi ile Python temellerini çalışıp ardından Turtle komutlarını uygulayabilirsin.
Turtle komutları koordinat ve yönü nasıl değiştirir?

Turtle çiziminde konum ve yön birbirinden farklıdır. goto(x, y) mutlak bir koordinata taşır, setheading() bakış yönünü ayarlar, forward() ise bu yönde ilerler. Kalemin yukarıda veya aşağıda olması, hareket sırasında çizgi oluşup oluşmayacağını belirler.
| Komut | Görevi | Çizime etkisi | Kısa kullanım |
|---|---|---|---|
goto(x, y) |
Mutlak bir koordinata taşır. | Kalem aşağıdaysa hedefe doğru çizgi çizer, yönü değiştirmez. | t.goto(120, 80) |
setheading(açı) |
Kaplumbağanın yönünü belirler. | Konumu değiştirmez ve tek başına çizgi çizmez. Standart modda 0 doğu, 90 kuzey, 180 batı, 270 güney yönünü gösterir. | t.setheading(90) |
penup() |
Kalemi kaldırır. | Hareket sırasında çizgi oluşmaz. | t.penup() |
pendown() |
Kalemi indirir. | Sonraki hareketler çizgi oluşturur. | t.pendown() |
forward(mesafe) |
Mevcut yönde belirtilen mesafe kadar ilerler. | Kalem aşağıdaysa ilerleme yönünde çizgi çizer. | t.forward(120) |
En önemli ayrım şudur: goto(120, 80) hedefin koordinatını söyler ve kaplumbağayı doğrudan o noktaya götürür. forward(120) ise hedef koordinat vermez; kaplumbağa hangi yöne bakıyorsa o yönde 120 birim ilerler. Bu nedenle çizimlerde önce goto() ve setheading() ile düzen kurulabilir, ardından forward() ile kenarlar çizilebilir.
Aşağıdaki örnek, kalemi çizmeden başlangıç noktasına götürür ve dört kenarlı bir şekil çizer:
import turtle as t
kalem = t.Turtle()
kalem.penup()
kalem.goto(-100, -50)
kalem.setheading(0)
kalem.pendown()
kalem.forward(200)
kalem.setheading(90)
kalem.forward(100)
kalem.setheading(180)
kalem.forward(200)
kalem.setheading(270)
kalem.forward(100)
t.mainloop()
Kodun beklenen görsel çıktısı, ekran merkezinin sol altındaki (-100, -50) noktasından başlayan bir dikdörtgendir. Kalem önce sağa, sonra yukarı, sola ve aşağı ilerler. İlk goto() komutu penup() sonrasında çalıştığı için başlangıç noktasına giderken ekranda bağlantı çizgisi oluşmaz.
Çizime başlamadan önce koordinatları nasıl planlamalısın?

Şekli kodlamadan önce köşeleri, koordinat işaretlerini ve çizim rotasını belirlemek hata riskini azaltır. Bu örnekte üçgenin yaklaşık merkezi ekranın çevresindedir ve kapladığı alan x ekseninde -120 ile 120, y ekseninde -80 ile 120 arasındadır.
- Şeklin alanını belirle: Üçgenin ekranın merkezine yakın, dengeli ve görünür bir alana yerleşeceğini düşün. A(-120, -80), B(120, -80) ve C(0, 120) noktaları bu alanı tanımlar.
- Köşeleri adlandır: Sol alt köşeye A, sağ alt köşeye B, üstteki köşeye C adını ver. Böylece her hareketin hangi iki köşe arasında olduğunu takip etmek kolaylaşır.
- x ve y işaretlerini kontrol et: A noktasında x negatif, y negatiftir. B noktasında x pozitif, y negatiftir. C noktasında x sıfır, y pozitiftir. Bu işaretler noktaların ekran merkezine göre konumunu gösterir.
- Başlangıç köşesini seç: A noktası iyi bir başlangıçtır çünkü A ile B aynı y değerine sahiptir. Bu nedenle taban, yatay bir çizgi olarak çizilebilir.
- Hareket yönünü planla: Rota A'dan B'ye, B'den C'ye ve C'den A'ya ilerler. İlk hareket sağa doğru yataydır. İkinci hareket yukarı ve sola, son hareket ise aşağı ve sola doğrudur. Komutları yazmadan önce bu rotayı zihninde veya kâğıt üzerinde görselleştir.
- Kalem durumunu belirle: Turtle'ı başlangıç noktası A'ya götürürken kalem yukarıda olmalıdır. A noktasına ulaştıktan sonra kalemi indirerek yalnızca üçgenin kenarlarını çizmelisin.
Bu planlama yaklaşımı, sorunu yalnızca komut eksikliğiyle açıklamak yerine başlangıç noktası, hedef koordinat ve kalem durumunu birlikte tasarlar. Bir hareketin doğru çalışması için nereden başladığını ve hangi noktaya ulaşması gerektiğini aynı anda bilmek gerekir.
Koordinatlarla çalışan bir üçgen nasıl çizilir?
Aşağıdaki kodda önce Turtle nesnesi oluşturulur, ardından kalem A noktasına çizim yapmadan götürülür. Yön sağa ayarlanır ve kalem indirildikten sonra üç kenar sırayla çizilir.
import turtle
kalem = turtle.Turtle()
kalem.penup()
kalem.goto(-120, -80)
kalem.setheading(0)
kalem.pendown()
kalem.forward(240)
kalem.goto(0, 120)
kalem.goto(-120, -80)
turtle.done()
import turtle, Python'ın Turtle modülünü programa ekler.kalem = turtle.Turtle(), çizimi yapacak Turtle nesnesini oluşturur.kalem.penup(), başlangıç konumuna giderken çizgi oluşmasını engeller.kalem.goto(-120, -80), kalemi A köşesine götürür.kalem.setheading(0), standart yönlendirmede kalemin sağa, yani doğu yönüne bakmasını sağlar.kalem.pendown(), çizimi başlatır.kalem.forward(240), A'dan B'ye yatay tabanı çizer. x değeri -120'den 120'ye ilerlediği için mesafe 240 birimdir.kalem.goto(0, 120), kalem aşağıda olduğu için B'den C'ye ikinci kenarı çizer.kalem.goto(-120, -80), C'den A'ya ilerleyerek üçgeni kapatır.turtle.done(), Turtle olay döngüsünü başlatır ve programın son satırında yer alır.
Beklenen görsel: Ekran merkezine yakın, tabanı yatay bir üçgen görmelisin. Alt köşeler A(-120, -80) ve B(120, -80) üzerinde, tepe noktası ise C(0, 120) konumundadır. Üç kenar birleştiği için şekil kapalıdır.
Komutların davranışlarını ayrıntılı biçimde incelemek için Python'ın resmî turtle belgelerine başvurabilirsin.
Başlangıç noktası ve yön hataları nasıl düzeltilir?
Turtle çizimi beklediğin yerde başlamıyor ya da şekil kapanmıyorsa komutları sırayla kontrol et. Beklenmeyen çizgiler, kalemin yanlış durumda olması, işaretin karıştırılması veya başlangıç noktasının planlanmamasıyla ilişkili olabilir.
Adım adım kontrol listesi
- İlk
goto()noktasını kontrol et: Çizime başlamadan önce hedef koordinatı belirle. Örneğingoto(-60, -40), kaplumbağayı x ekseninde sola ve y ekseninde aşağıya taşır. - Konum değiştirirken
penup()kullan: Merkezden başlangıç noktasına giderken çizgi istemiyorsan önce kalemi kaldır. Böylece yalnızca şeklin kenarları çizilir. - Çizimden önce
pendown()çağır: Başlangıç noktasına ulaştıktan sonra kalemi indir. Aksi hâldeforward()hareketleri ekranda görünmez. - Yönü açıkça belirle: Önceki komutlardan kalan yönü tahmin etmek yerine
setheading()kullan.setheading(0)sağa,90yukarı,180sola,270aşağı yönelir. - Negatif y değerini kontrol et: Varsayılan koordinat sisteminde pozitif y yukarıyı, negatif y aşağıyı gösterir. Eksi işaretinin yanlış yazılması şekli beklenmedik bir bölgeye taşıyabilir.
- Son koordinatı karşılaştır: Çizimin sonunda kaplumbağa ilk koordinata dönüyorsa şekil kapanır. Son nokta farklıysa kenarlardan biri eksik veya uzunluklardan biri hatalı olabilir.
Aşağıdaki örnekte kalem önce kaldırılır, başlangıç noktası belirlenir, yönler açıkça ayarlanır ve son hareket ilk noktaya döner:
import turtle
turtle.penup()
turtle.goto(-60, -40)
turtle.setheading(0)
turtle.pendown()
turtle.forward(120)
turtle.setheading(90)
turtle.forward(80)
turtle.setheading(180)
turtle.forward(120)
turtle.setheading(270)
turtle.forward(80)
turtle.done()
Beklenen görsel çıktı, başlangıç noktası olan (-60, -40) koordinatından başlayıp sağa, yukarıya, sola ve aşağıya ilerleyen kapalı bir dikdörtgendir. Çizimden sonra temel Python kavramlarını öz değerlendirmek istersen Python bilgi testini çözebilirsin.
Sık Sorulan Sorular
Python Turtle'da (0, 0) noktası neyi gösterir?
Varsayılan Turtle ekranında (0, 0), x ve y eksenlerinin kesiştiği merkez başlangıç noktasıdır. x değeri yatay konumu, y değeri dikey konumu belirtir.
goto() ile forward() arasındaki temel fark nedir?
goto(), kaplumbağayı doğrudan belirli bir x ve y koordinatına götürür. forward() ise mevcut yöne göre verilen mesafe kadar ilerletir.
Turtle hareket ederken neden istemeden çizgi oluşur?
Kalem aşağıdayken yapılan her hareket çizgi oluşturur. Başlangıç noktasına giderken penup() kullanıp çizime başlamadan hemen önce pendown() çağırabilirsin.
Çizim beklediğim yöne gitmiyorsa hangi adımları kontrol etmeliyim?
İlk goto() koordinatını, kalemin durumunu, setheading() değerini, negatif y işaretini ve son koordinatın ilk noktaya dönüp dönmediğini sırayla kontrol et.
Koordinatları, kalem durumunu ve yönü sırayla kontrol etmek, Turtle çizimlerindeki başlangıç ve yön hatalarını daha kolay düzeltmeni sağlar.