Untitled

mail@pastecode.io avatar
unknown
plain_text
4 days ago
3.2 kB
2
Indexable
Never
import cv2
import numpy as np

def create_canvas():
    return np.ones((500, 500, 3), dtype="uint8") * 255  # Beyaz bir tuval oluşturma

def draw_center_circle(canvas, center, radius=10):
    cv2.circle(canvas, center, radius, (0, 0, 0), -1)  # Merkezde bir daire çizme

def draw_expanding_rectangles(canvas, center, size): #Bu fonksiyon, genişleyen dikdörtgenler çizer.
    current_size = 50  # Başlangıç boyutu
    while current_size <= size:  # Dikdörtgenlerin boyutu belirtilen boyuta ulaşana kadar devam et
        # Dikdörtgenin sol üst ve sağ alt köşe koordinatlarını hesapla
        top_left = (center[0] - current_size // 2, center[1] - int(current_size * 0.3)) #Dikdörtgenin sol üst köşe koordinatlarını hesaplar
        bottom_right = (top_left[0] + current_size, top_left[1] + int(current_size * 0.6)) #Dikdörtgenin sağ alt köşe koordinatlarını hesaplar.
        cv2.rectangle(canvas, top_left, bottom_right, (0, 0, 0), 4)  # Tuval üzerine dikdörtgen çizme
        current_size += 50  # Boyutu artır

    # En büyük dikdörtgenin köşe noktalarını belirle
    top_left = (center[0] - size // 2, center[1] - int(size * 0.3)) #En büyük dikdörtgenin sol üst köşe koordinatlarını hesaplar.
    bottom_right = (top_left[0] + size, top_left[1] + int(size * 0.6)) #En büyük dikdörtgenin sağ alt köşe koordinatlarını hesaplar.

    corner_points = [
        top_left,
        (top_left[0], bottom_right[1]),
        (bottom_right[0], top_left[1]),
        bottom_right  # Köşe noktaları listesi
    ]
    # Köşe noktalarını yeşil renkte dairelerle işaretle
    for point in corner_points:
        cv2.circle(canvas, point, 8, (0, 255, 0), -1)

def expand_rectangles(expansion_speed=500, duration=45): #Bu fonksiyon, genişleyen dikdörtgenler çizer. Fonksiyon iki parametre alır: expansion_speed (genişleme hızı) ve duration (süre).
    size = 50  # Başlangıç boyutu değişkenini 50 olarak başlatır.
    start_time = cv2.getTickCount() / cv2.getTickFrequency()  # Bu değer, belirli bir zaman diliminde geçen süreyi hesaplamak için kullanılır.

    while True:
        canvas = create_canvas()  # Yeni bir tuval oluştur
        center = (canvas.shape[1] // 2, canvas.shape[0] // 2)  # Tuvalin merkez noktasını hesapla
        draw_center_circle(canvas, center)  # Merkezde bir daire çiz
        draw_expanding_rectangles(canvas, center, size)  # Genişleyen dikdörtgenler çiz

        cv2.imshow("Canvas", canvas)  # Tuvali göster

        elapsed_time = (cv2.getTickCount() / cv2.getTickFrequency()) - start_time  # Geçen süreyi hesapla
        if elapsed_time >= duration:
            break  # Belirtilen süre tamamlandığında döngüyü sonlandır

        key = cv2.waitKey(expansion_speed)
        if key == 27:  # Esc tuşuna basıldığında döngüyü sonlandır
            break

        size += 50  # Boyutu artır

    cv2.destroyAllWindows()

if __name__ == "__main__":  # Python dosyasının doğrudan çalıştırıldığı zamanlarda belirli bir kod bloğunun çalıştırılmasını sağlar
    expand_rectangles()
Leave a Comment