altıgen

 avatar
unknown
python
a year ago
2.1 kB
10
Indexable
import cv2
import numpy as np
import time

# Görüntü boyutları
width, height = 800, 800

# Süreyi belirle (saniye cinsinden)
run_duration = 60  # Programın çalışacağı süre (örneğin 60 saniye)

# Programın başlama zamanı
start_time = time.time()

# OpenCV penceresini başlat
cv2.namedWindow("Growing Hexagons", cv2.WINDOW_AUTOSIZE)

# Merkez koordinatları
center_x, center_y = width // 2, height // 2

# Altıgenin kenar sayısı ve açısı
num_sides = 6
angle = 360 / num_sides

# İlk altıgenin yarıçapı ve büyüme faktörü
initial_radius = 20
growth_factor = 40  # Büyüme faktörünü artırarak altıgenler arasındaki mesafeyi artırdık

while time.time() - start_time < run_duration:
    # Boş bir görüntü oluştur
    base_image = np.zeros((height, width, 3), dtype=np.uint8)

    # Altıgenleri çiz
    for i in range(10):  # 10 adet büyüyen altıgen
        radius = initial_radius + i * growth_factor
        hexagon = []

        for j in range(num_sides):
            theta = np.deg2rad(j * angle)
            x = int(center_x + radius * np.cos(theta))
            y = int(center_y + radius * np.sin(theta))
            hexagon.append((x, y))

        hexagon = np.array(hexagon, np.int32).reshape((-1, 1, 2))
        cv2.polylines(base_image, [hexagon], isClosed=True, color=(0, 255, 0), thickness=3)  # Kalınlığı artırdık

        # Canvası kopyala ve yeni altıgenin köşe noktalarına daire ekle
        image = base_image.copy()
        for point in hexagon:
            cv2.circle(image, tuple(point[0]), radius=5, color=(0, 0, 255), thickness=-1)  # Daire boyutu ve rengi ayarlandı

        # Güncellenen görüntüyü göster
        cv2.imshow("Growing Hexagons", image)

        # 500 ms bekle
        if cv2.waitKey(500) & 0xFF == 27:  # 500 ms bekle, ESC ile çık
            break

    # Pencereyi kapatmadan devam et
    if cv2.waitKey(1) & 0xFF == 27:  # ESC ile çık
        break

# Program sonlandıktan sonra pencereyi kapat
cv2.destroyAllWindows()
Editor is loading...
Leave a Comment