Skip to content

New Illusion: Kanizsa Square #20

@ujdcodr

Description

@ujdcodr

Describe the solution you'd like
Screenshot from 2024-05-21 20-18-18

How could we do it?

I have figured out the core logic to produce any configuration of the illusion by altering the radius and spacing (from the edge of the image). The image in the description was generated using the following code.

from PIL import Image, ImageDraw

# Set the dimensions and background color
width, height = 500, 500
image = Image.new("RGB", (width, height), "gray")
draw = ImageDraw.Draw(image)

# Define circle radius and grid spacing
radius = 90
spacing = radius+20

# Define the centers of the circles
circle_centers = [
    (spacing, spacing),
    (width - spacing, spacing),
    (spacing, height - spacing),
    (width - spacing, height - spacing)
]

# Draw the circles
for center in circle_centers:
    draw.ellipse((center[0] - radius, center[1] - radius, center[0] + radius, center[1] + radius), "white")

# Draw the  square
square_size = width - 2*spacing 
draw.rectangle((spacing,spacing,spacing+square_size,spacing+square_size), "gray")

I need some help with understanding how to break this down like the other illusions that have already been implemented.

Some general questions:

  1. What would the illusion strength and difficulty parameters be in this illusion?
  2. What parameters would go into the corresponding _paramters.py file?
  3. For the illusions that have been implemented in the library, I see 5 files. For an initial commit, which ones should I work on?
  4. Followup to Q3, how to approach adding a new illusion as a beginner (first file to create, writing the parameter dictionary, etc.)
  5. How to verify whether the illusion is generated correctly before creating the PR?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions