buyuyen kare
unknown
plain_text
a year ago
2.7 kB
9
Indexable
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)Editor is loading...
Leave a Comment