 |
CLIP Score: 27.86
from AIDL import *
def stained_glass_window(width: float = 20*inches, height: float = 30*inches, border_thickness: float = 0.5*inches):
"""
Creates a simple rectangular stained glass window with a frame and geometric inner patterns.
"""
# Define the main structure of the window
window = Solid()
frame = Solid()
patterns = Hole()
window.frame = frame
window.patterns = patterns
# Define the frame geometry. We use a rectangle for the window boundary,
# and another smaller rectangle inside for the frame.
frame.outer_rect = Rectangle((width/2, height/2), width, height)
frame.inner_rect = Rectangle((width/2, height/2), width - 2*border_thickness, height - 2*border_thickness)
# Create some geometric patterns inside the window as holes
# For simplicity, create one large circle in the center and four smaller circles around it
# Center Circle
patterns.center_circle = Circle((width/2, height/2), 4*inches)
# Smaller Circles (one in each quadrant)
patterns.quadrant_circles = [
Circle((width/4, height/4), 2*inches), # Top-Left
Circle((3*width/4, height/4), 2*inches), # Top-Right
Circle((width/4, 3*height/4), 2*inches), # Bottom-Left
Circle((3*width/4, 3*height/4), 2*inches) # Bottom-Right
]
# Adding a few triangles for variety
patterns.triangles = [
Triangle((width/4, height/2), 2*inches, 3*inches), # Left
Triangle((3*width/4, height/2), 2*inches, 3*inches) # Right
]
return window
with AIDL_2D:
model = stained_glass_window()
print(model.Solve())
model.Render()
|
Please write an AIDL program to generate a stained glass window
Creating a stained glass window model in AIDL sounds like an interesting project! Stained glass windows can have a variety of designs, but I'll go with a simple rectangular frame with some geometric patterns for the purpose of this example.
### Design Details:
1. **Frame**: Outer solid boundary in the shape of a rectangle.
2. **Inner Patterns**: Several holes arranged in geometric patterns (e.g., circles and triangles).
I'll begin by defining a basic structure for the stained glass window and then add the frame and geometric patterns.
### AIDL Program for a Stained Glass Window
```python
from AIDL import *
def stained_glass_window(width: float = 20*inches, height: float = 30*inches, border_thickness: float = 0.5*inches):
"""
Creates a simple rectangular stained glass window with a frame and geometric inner patterns.
"""
# Define the main structure of the window
window = Solid()
frame = Solid()
patterns = Hole()
window.frame = frame
window.patterns = patterns
# Define the frame geometry. We use a rectangle for the window boundary,
# and another smaller rectangle inside for the frame.
frame.outer_rect = Rectangle((width/2, height/2), width, height)
frame.inner_rect = Rectangle((width/2, height/2), width - 2*border_thickness, height - 2*border_thickness)
# Create some geometric patterns inside the window as holes
# For simplicity, create one large circle in the center and four smaller circles around it
# Center Circle
patterns.center_circle = Circle((width/2, height/2), 4*inches)
# Smaller Circles (one in each quadrant)
patterns.quadrant_circles = [
Circle((width/4, height/4), 2*inches), # Top-Left
Circle((3*width/4, height/4), 2*inches), # Top-Right
Circle((width/4, 3*height/4), 2*inches), # Bottom-Left
Circle((3*width/4, 3*height/4), 2*inches) # Bottom-Right
]
# Adding a few triangles for variety
patterns.triangles = [
Triangle((width/4, height/2), 2*inches, 3*inches), # Left
Triangle((3*width/4, height/2), 2*inches, 3*inches) # Right
]
return window
with AIDL_2D:
model = stained_glass_window()
print(model.Solve())
model.Render()
```
### Explanation:
- **Frame**: Defined by two rectangles representing the outer and inner boundaries, creating a frame with a given border thickness.
- **Patterns**: Includes a central circle, four smaller circles in each quadrant, and a couple of triangles.
Feel free to specify any additional patterns or modifications you'd like, or any feedback on the program structure. We can adjust the design as needed!
|