Upload files to "/"
This commit is contained in:
commit
92dbdefd2f
4 changed files with 818 additions and 0 deletions
60
chatgptjob.py
Normal file
60
chatgptjob.py
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
import pygame, colorsys
|
||||
import numpy as np
|
||||
from numba import jit
|
||||
|
||||
# Set the width and height of the window
|
||||
width, height = 1100, 800
|
||||
|
||||
# Define the region of the complex plane to visualize
|
||||
xmin, xmax = -2, 1
|
||||
ymin, ymax = -1, 1
|
||||
|
||||
# Set the maximum number of iterations for the Mandelbrot calculation
|
||||
max_iterations = 100
|
||||
|
||||
# Initialize Pygame
|
||||
pygame.init()
|
||||
|
||||
# Create a window
|
||||
screen = pygame.display.set_mode((width, height))
|
||||
pygame.display.set_caption("Mandelbrot Set")
|
||||
|
||||
@jit(nopython=True)
|
||||
def mandelbrot(c):
|
||||
z = 0
|
||||
for i in range(max_iterations):
|
||||
z = z**2 + c
|
||||
if abs(z) > 2:
|
||||
return i
|
||||
return max_iterations
|
||||
|
||||
# Function to convert iterations to a smooth gradient in the HSV color space
|
||||
def smooth_color(iterations):
|
||||
if iterations == max_iterations:
|
||||
return 0, 0, 0 # Black for points in the set
|
||||
hue = 0.7 + iterations / max_iterations
|
||||
saturation = 1.0
|
||||
value = iterations / max_iterations
|
||||
return [int(c * 255) for c in colorsys.hsv_to_rgb(hue, saturation, value)]
|
||||
|
||||
# Function to update the display
|
||||
def update_display():
|
||||
for x in range(width):
|
||||
for y in range(height):
|
||||
c = complex(xmin + (x / width) * (xmax - xmin), ymin + (y / height) * (ymax - ymin))
|
||||
iterations = mandelbrot(c)
|
||||
color = smooth_color(iterations)
|
||||
screen.set_at((x, y), color)
|
||||
pygame.display.flip()
|
||||
|
||||
# Run the Pygame event loop
|
||||
running = True
|
||||
while running:
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
running = False
|
||||
|
||||
update_display()
|
||||
|
||||
# Quit Pygame
|
||||
pygame.quit()
|
||||
Loading…
Add table
Add a link
Reference in a new issue