buyuyen kare

mail@pastecode.io avatar
unknown
plain_text
7 days ago
2.7 kB
2
Indexable
Never
import cv2
import numpy as np
import time #zamanı ölçmek ve uyku fonksiyonlarını kullan

def buyuyen_kare(genisleme_hizi, sure):
    
    # Parametre sınırlarını kontrol et
    genisleme_hizi = max(100, min(genisleme_hizi, 1000)) #Karelerin büyüme hızı (milisaniye cinsinden, varsayılan 500ms)
    sure = max(45, min(sure, 5 * 60))  # süre saniye cinsinden, max 5 dakika (300 saniye) Programın çalışma süresi (saniye cinsinden, varsayılan 45 saniye)
    
    # Beyaz tuvali oluştur
    canvas = np.ones((500, 500, 3), dtype="uint8") * 255 # *255 tuvali beyaz yapar
    
    baslangic_zamani = time.time() #Başlangıç zamanı kaydedilir.işlemin ne kadar sürdüğünü kaydettik. 
    while time.time() - baslangic_zamani < sure: #Belirtilen süre boyunca döngü devam eder.
        size = 50
        while size <= 450:
            
            canvas.fill(255)  # Tuvali temizle (beyaza boya)
                      
            # Ortada daire çiz
            cv2.circle(canvas, (250, 250), 5, (169, 169, 169), -1)
            
            # Tüm kareleri çiz,her büyük karenin içinde birden fazla küçük kare çizmek için current_size değişkeni kullandık. Büyürken içerideki küçük kareleri de çiziyor
            current_size = size 
            while current_size >= 50:
                top_left = (250 - current_size // 2, 250 - current_size // 2)
                bottom_right = (250 + current_size // 2, 250 + current_size // 2)
                cv2.rectangle(canvas, top_left, bottom_right, (104, 104, 104), 3)
                current_size -= 50
            
            # En son kareyi işaretle
            top_left = (250 - size // 2, 250 - size // 2)
            bottom_right = (250 + size // 2, 250 + size // 2)
            cv2.circle(canvas, top_left, 8, (0, 0, 255), -1)  #(225,225)
            cv2.circle(canvas, bottom_right, 8, (0, 0, 255), -1) #(275,275)
            cv2.circle(canvas, (top_left[0], bottom_right[1]), 8, (0, 0, 255), -1) # (225,275)=(top_left[0],bottom_right[1])
            cv2.circle(canvas, (bottom_right[0], top_left[1]), 8, (0, 0, 255), -1) #(275,225)=(bottom_right[0], top_left[1])
            
            cv2.imshow("Buyuyen Kare", canvas)
            if cv2.waitKey(genisleme_hizi) & 0xFF == 27:  # ESC tuşuna basılarak çıkılabilir
                cv2.destroyAllWindows()
                return
           # if cv2.waitKey(500) & 0xFF == ord("q"): #q yazınca kapanıyor
               # break
            
            size += 50
        
    cv2.destroyAllWindows()
    
# Fonksiyonu çağırsak
buyuyen_kare(genisleme_hizi= 2000, sure= 60)
Leave a Comment