Upload files to "/"
This commit is contained in:
commit
92dbdefd2f
4 changed files with 818 additions and 0 deletions
83
personaljob.py
Normal file
83
personaljob.py
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
# Set the width and height of the window
|
||||
width, height = 1100, 600
|
||||
|
||||
# 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 = 1000
|
||||
|
||||
import pygame
|
||||
|
||||
pygame.init()
|
||||
|
||||
# Create a window
|
||||
screen = pygame.display.set_mode((width, height))
|
||||
pygame.display.set_caption("Mandelbrot Set")
|
||||
|
||||
def mandelbrot(c):
|
||||
z = 0
|
||||
for i in range(max_iterations):
|
||||
z = z**2 + c
|
||||
if abs(z) > 2:
|
||||
return i
|
||||
return max_iterations
|
||||
|
||||
def update_display():
|
||||
for x in range(width):
|
||||
for y in range(height):
|
||||
# Map pixel coordinates to complex plane coordinates
|
||||
real = xmin + (x / width) * (xmax - xmin)
|
||||
imag = ymin + (y / height) * (ymax - ymin)
|
||||
|
||||
# Create a complex number from the coordinates
|
||||
c = complex(real, imag)
|
||||
|
||||
# Calculate Mandelbrot value for the complex number
|
||||
iterations = mandelbrot(c)
|
||||
|
||||
# Set pixel color based on the number of iterations
|
||||
color = (iterations % 256, iterations % 256, iterations % 256)
|
||||
screen.set_at((x, y), color)
|
||||
|
||||
pygame.display.flip()
|
||||
|
||||
# Run the Pygame event loop
|
||||
running = True
|
||||
zoomed = False # Variable to track whether a zoom has occurred
|
||||
|
||||
while running:
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
running = False
|
||||
elif event.type == pygame.MOUSEBUTTONDOWN:
|
||||
if event.button == 1: # Left mouse button
|
||||
# Get the coordinates of the mouse click
|
||||
click_x, click_y = event.pos
|
||||
|
||||
# Calculate the new region based on the clicked point
|
||||
click_complex = complex(
|
||||
xmin + (click_x / width) * (xmax - xmin),
|
||||
ymin + (click_y / height) * (ymax - ymin)
|
||||
)
|
||||
|
||||
# Define a zoom factor
|
||||
zoom_factor = 0.5 # You can adjust this value for different zoom levels
|
||||
|
||||
# Update the region to zoom in on the clicked point
|
||||
xmin = click_complex.real - (xmax - xmin) * zoom_factor / 2
|
||||
xmax = click_complex.real + (xmax - xmin) * zoom_factor / 2
|
||||
ymin = click_complex.imag - (ymax - ymin) * zoom_factor / 2
|
||||
ymax = click_complex.imag + (ymax - ymin) * zoom_factor / 2
|
||||
|
||||
# Set the zoomed variable to True
|
||||
zoomed = True
|
||||
|
||||
# Only update the display if a zoom has occurred
|
||||
if zoomed:
|
||||
update_display()
|
||||
zoomed = False # Reset the variable
|
||||
|
||||
# Quit Pygame
|
||||
pygame.quit()
|
||||
Loading…
Add table
Add a link
Reference in a new issue