altıgen
unknown
python
a year ago
2.1 kB
15
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