İçeriğe geç

Menü

Berk Akademi
Birebir ders başvurusu Ücretsiz ön görüşme Ana Sayfa

Python Turtle Koordinat Sistemi Nasıl Kullanılır? Başlangıç Noktası

python-turtle-koordinat-sistemi-nasil-kullanilir
Bu yazıda neler var?
  1. Turtle ekranında başlangıç noktası ve koordinat eksenleri
  2. Turtle komutları koordinat ve yönü nasıl değiştirir?
  3. Çizime başlamadan önce koordinatları nasıl planlamalısın?
  4. Koordinatlarla çalışan bir üçgen nasıl çizilir?
  5. Başlangıç noktası ve yön hataları nasıl düzeltilir?
  6. Sık Sorulan Sorular

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 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?

Ç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.

  1. Ş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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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

  1. İlk goto() noktasını kontrol et: Çizime başlamadan önce hedef koordinatı belirle. Örneğin goto(-60, -40), kaplumbağayı x ekseninde sola ve y ekseninde aşağıya taşır.
  2. 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.
  3. Çizimden önce pendown() çağır: Başlangıç noktasına ulaştıktan sonra kalemi indir. Aksi hâlde forward() hareketleri ekranda görünmez.
  4. Yönü açıkça belirle: Önceki komutlardan kalan yönü tahmin etmek yerine setheading() kullan. setheading(0) sağa, 90 yukarı, 180 sola, 270 aşağı yönelir.
  5. 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.
  6. 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.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin, yazılım geliştirici ve eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; İzmir Ekonomi Üniversitesi'ni bölüm birincisi ve yüksek şeref öğrencisi olarak tamamladı. Bugün yalnızca eğitim vermekle kalmıyor, sektörde aktif olarak yazılım projeleri geliştiriyor ve gerçek dünya deneyimini birebir derslerine taşıyor. Ezberden uzak, mühendislik zihniyetini merkeze alan sürdürülebilir öğrenme sistemleri tasarlayarak sorgulayan, üreten ve problem çözebilen yeni nesil yazılımcılar yetiştiriyor.

Sektörel Deneyim & Projeler

  • Ticarify Entegrasyon Yazılım logosu CEO Ticarify Entegrasyon YazılımPazaryerleri ve e-ticaret sitelerine otomatik e-fatura kesimi, sipariş ve kargo takibi hizmetleri sunan e-Dönüşüm platformunun API mimarisini ve yazılım ekibini yönetmektedir.
  • Benim Düğünüm logosu CEO Benim DüğünümDijital etkinlik ve anı paylaşım platformu.
  • Siberdizayn logosu Yazılım Ekibi Lideri SiberdizaynYüksek anlık oyuncu trafiğine sahip oyun kontrol panelleri ve sunucu altyapıları geliştiren yazılım ekibine liderlik etmektedir.
  • MEDYOGRAFYA 360° Dijital Çözümler logosu Dijital Strateji Lideri MEDYOGRAFYA 360° Dijital ÇözümlerŞirketlerin dijital çözümlerde uzun vadede nasıl ilerlemesi gerektiği ve dijital dönüşüm süreçlerinin yönetilmesine destek olmaktadır.
  • İzmir Ekonomi Üniversitesi logosu Danışma Kurulu Üyesi İzmir Ekonomi ÜniversitesiMezun olduğu üniversitesinde, Bilgisayar Programcılığı bölümünün akademik müfredatını güncel sektör ihtiyaçlarına göre şekillendirmek adına Danışma Kurulu'nda görev almaktadır.
WhatsApp Hemen Ara