İçeriğe geç

Menü

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

Python Turtle'da Renk ve Kalem Kalınlığı Nasıl Değiştirilir?

python-turtle-renk-ve-kalem-kalinligi-nasil-degistirilir
Bu yazıda neler var?
  1. Renk ve kalem kalınlığı komutları ne işe yarar?
  2. Renk adları ve RGB demetleri nasıl kullanılır?
  3. Kalem hareketi ve dolgu sırası nasıl ayarlanır?
  4. Uygulama: Üç katmanlı renkli bir rozet çizimi

Python Turtle'da renk ve kalem kalınlığı değiştirme işlemi, kalemin birkaç özelliğini ayarlayarak yapılır. pencolor() çizgi rengini, fillcolor() doldurulan şeklin iç rengini, color() bu iki rengi birlikte veya ayrı ayrı, pensize() ise çizgi kalınlığını belirler. bgcolor() bu gruptan ayrılır; kalemin değil, Turtle penceresinin arka plan rengini değiştirir.

Renk adları hızlı bir başlangıç sağlar. Daha özel tonlar için önce colormode(255) ayarını yapıp RGB demetleri kullanabilirsin.

Renk ve kalem kalınlığı komutları ne işe yarar?

Renk ve kalem kalınlığı komutları ne işe yarar?

Bir ayarı değiştirdiğinde yeni değer, sonraki çizimlerde kullanılacak kalem durumuna uygulanır. Çizginin rengini ve kalınlığını değiştirmek için pencolor() ile pensize(), kapalı ve doldurulan bir şeklin iç rengini belirlemek için fillcolor() kullanılır. bgcolor() ise Screen nesnesinin yöntemidir; bu nedenle pencere görünümünü değiştirir, Turtle nesnesinin kalem özelliklerini değil.

Aşağıdaki örneklerde kalem bir Turtle nesnesini, ekran ise çizimin açıldığı pencereyi temsil eder.

Komut Kısa sözdizimi Etkisi
pencolor() kalem.pencolor("blue") Çizilen çizginin rengini mavi yapar.
fillcolor() kalem.fillcolor("yellow") Doldurulan şeklin iç rengini sarı yapar.
color() kalem.color("red")
kalem.color("red", "yellow")
Tek renkte çizgi ve dolguyu birlikte, iki renkte çizgi ve dolguyu ayrı ayarlar.
pensize() kalem.pensize(5) Sonraki çizgilerin kalınlığını verilen pozitif değere ayarlar.
bgcolor() ekran.bgcolor("orange") Turtle penceresinin arka planını turuncu yapar; kalem ayarlarını değiştirmez.

color() tek bir renk aldığında, örneğin kalem.color("red") yazıldığında, çizgi ve dolgu aynı renge ayarlanır. kalem.color("black", "yellow") kullanımında ise ilk değer çizgiye, ikinci değer dolguya gider. Yöntemleri parantez içinde değer olmadan çağırmak mevcut ayarı okumayı sağlar.

import turtle

ekran = turtle.Screen()
kalem = turtle.Turtle()

ekran.bgcolor("orange")
kalem.color("red", "yellow")
kalem.pensize(5)
kalem.forward(120)

turtle.done()

Beklenen sonuç: Turuncu arka plan üzerinde kalınlığı 5 olan kırmızı bir çizgi görünür. Dolgu rengi de sarı olarak ayarlanır ve doldurulacak şekiller için hazır olur.

Renk adları ve RGB demetleri nasıl kullanılır?

Doğrudan renk adı kullanımı için değeri tırnak içinde yazabilirsin. kalem.pencolor("blue") çizgiyi mavi yapar. kalem.fillcolor("yellow") doldurulan alanı sarı yapar. kalem.color("blue", "yellow") ise mavi çizgi ve sarı dolgu ayarını tek satırda oluşturur.

RGB demeti, (r, g, b) biçiminde üç bileşen taşır. 0-255 aralığındaki bileşenleri kullanacaksan önce ekran.colormode(255) çağrısını yapmalısın. Ardından kalem.pencolor((30, 144, 255)) çizgiyi canlı mavi tonuna, kalem.fillcolor((255, 215, 0)) doldurulan bölgeyi altın sarısı tonuna ayarlar. İki RGB demetini kalem.color((30, 144, 255), (255, 215, 0)) biçiminde verirsen ilk demet çizgiye, ikinci demet dolguya uygulanır.

Python'da temel sözdizimini ve fonksiyon kullanımını kendi hızında pekiştirmek için ücretsiz Sıfırdan Temel Python video eğitimine göz atabilirsin.

Kalem hareketi ve dolgu sırası nasıl ayarlanır?

Kalem hareketi ve dolgu sırası nasıl ayarlanır?

Bir şekli temiz çizmek için kalem ayarlarını ve hareketlerini doğru sıraya koymalısın. pensize() çizgi kalınlığını belirler; pencolor() kenar rengini, fillcolor() iç dolgu rengini seçer. İki değer birlikte verildiğinde color() da bu iki rengi aynı anda ayarlayabilir. Pencere arka planını değiştiren bgcolor() ise kalemin çizgi veya dolgu ayarından ayrıdır. penup() hareket ederken çizgi çizilmesini durdurur, pendown() ise çizimi yeniden başlatır.

  1. Önce çizgi ve dolgu renklerini belirle. Ardından pensize() ile o şeklin çerçeve kalınlığını seç.
  2. penup() çağrısını kullanarak kalemi kaldır. Başlangıç noktasına ya da yeni çizim konumuna geçerken ekranda bağlantı çizgisi oluşmaz.
  3. Çizime başlayacağın noktaya geldiğinde pendown() çağrısını yap. Bundan sonraki hareketler çizgi oluşturur.
  4. Şekli çizmeye hemen başlamadan önce begin_fill() komutunu çalıştır. Böylece sonraki çizimler dolgu işlemi için kaydedilir.
  5. Kalem aşağıdayken şekli tamamla. Tam bir daire kendi sınırını kapatır; çokgenlerde ise başlangıç noktasına dönmek gerekir.
  6. Son çizim hareketinden sonra end_fill() çağrısını yap. Dolgu işlemi bu komutla tamamlanır ve iç bölge seçtiğin fillcolor() değerini alır.

Sıra kontrolü: Dolgu görünmüyorsa fillcolor() değerinin şekilden önce ayarlandığını, begin_fill() komutunun çizimden önce, end_fill() komutunun ise şekil tamamlandıktan sonra çalıştığını kontrol et. Şekil çizilirken kalemin aşağıda olması da önemlidir.

Uygulama: Üç katmanlı renkli bir rozet çizimi

Aşağıdaki örnek, tek bir Turtle nesnesi ve anlaşılır bir yardımcı fonksiyon kullanır. Üç daire aynı merkeze yerleşir. colormode(255) sayesinde RGB demetlerinde 0 ile 255 arasındaki değerleri kullanabilir; renk adlarını ve RGB demetlerini aynı program içinde birlikte yazabilirsin.

import turtle

turtle.colormode(255)

kalem = turtle.Turtle()
kalem.speed(0)

def rozet_katmani(turtle_objesi, yaricap, kalem_rengi, dolgu_rengi, kalinlik):
    turtle_objesi.penup()
    turtle_objesi.home()
    turtle_objesi.setheading(0)
    turtle_objesi.forward(yaricap)
    turtle_objesi.left(90)

    turtle_objesi.pensize(kalinlik)
    turtle_objesi.pencolor(kalem_rengi)
    turtle_objesi.fillcolor(dolgu_rengi)

    turtle_objesi.pendown()
    turtle_objesi.begin_fill()
    turtle_objesi.circle(yaricap)
    turtle_objesi.end_fill()

rozet_katmani(kalem, 150, "black", (255, 215, 0), 8)
rozet_katmani(kalem, 105, (255, 255, 255), "blue", 5)
rozet_katmani(kalem, 60, (128, 0, 128), "red", 2)

kalem.hideturtle()
turtle.done()

Yardımcı fonksiyon her katmanda kalemi önce kaldırır, merkeze döndürür, yarıçap kadar ilerletir ve yönünü değiştirir. Böylece dairelerin merkezleri aynı noktada kalır. Kalem indirildikten sonra begin_fill(), daire çizimi ve end_fill() sırası uygulanır.

Çalıştırdığında dış katmanda siyah, kalın bir çerçeve ve altın renkli dolgu görürsün. Orta katmanda beyaz, orta kalınlıkta farklı bir çizgi ile mavi dolgu; iç katmanda ise mor, ince bir çerçeve ile kırmızı dolgu yer alır. Böylece pencolor() ile kenarın, fillcolor() ile iç bölgenin nasıl ayrı ayrı kontrol edildiği belirginleşir.

Bu tür uygulamaları kişiye özel müfredat ve ödev desteğiyle seviyene göre ilerletmek için birebir Python Özel Ders programı incelenebilir.

Artık yarıçap, renk ve kalınlık değerlerini değiştirerek kendi rozet tasarımlarını deneyebilirsin.

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