Untitled
unknown
plain_text
a year ago
3.2 kB
10
Indexable
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()
Editor is loading...
Leave a Comment