 |
CLIP Score: 33.32
from AIDL import *
def vintage_camera(
body_width: float = 4*inches,
body_height: float = 3*inches,
lens_radius: float = 1*inch,
shutter_radius: float = 0.5*inch,
viewfinder_width: float = 1*inch,
viewfinder_height: float = 0.5*inch
):
"""
Model a simple vintage camera with a rectangular body,
a circular lens, a shutter inside the lens, and a small
rectangle viewfinder on top of the body.
"""
# Main structure of the camera
camera = Solid()
# Body of the camera
camera.body = Rectangle((0,0), body_width, body_height)
# Lens
lens = Solid(shift=(0, body_height/2 - lens_radius))
lens.main = Circle((0,0), lens_radius)
camera.lens = lens
# Shutter inside the lens
shutter = Solid()
shutter.main = Circle((0,0), shutter_radius)
lens.shutter = shutter
# Viewfinder on top of the body
viewfinder = Solid(shift=(0, body_height/2 + viewfinder_height/2))
viewfinder.main = Rectangle((0,0), viewfinder_width, viewfinder_height)
camera.viewfinder = viewfinder
# Position and size constraints
camera.AddConstraint(lens.bb.horizontal_center == camera.body.center.u)
camera.AddConstraint(viewfinder.bb.horizontal_center == camera.body.center.u)
# Shutter should be centered within the lens
lens.AddConstraint(Coincident(shutter.main.center, lens.main.center))
return camera
with AIDL_2D:
model = vintage_camera()
print(model.Solve())
model.Render()
|
Please write an AIDL program to generate a vintage camera
Sure, let's create a vintage camera model step-by-step. Vintage cameras often have a boxy body with a telescoping lens, a circular shutter, and a viewfinder on top. Here’s a more detailed breakdown:
1. **Body**: A simple rectangle.
2. **Lens**: A circle representing the front of the lens.
3. **Shutter**: A smaller circle inside the lens.
4. **Viewfinder**: A small rectangle on top of the body.
Let's start with this basic structure and build the model incrementally. I'll define the function `vintage_camera` that generates this model.
```python
from AIDL import *
def vintage_camera(
body_width: float = 4*inches,
body_height: float = 3*inches,
lens_radius: float = 1*inch,
shutter_radius: float = 0.5*inch,
viewfinder_width: float = 1*inch,
viewfinder_height: float = 0.5*inch
):
"""
Model a simple vintage camera with a rectangular body,
a circular lens, a shutter inside the lens, and a small
rectangle viewfinder on top of the body.
"""
# Main structure of the camera
camera = Solid()
# Body of the camera
camera.body = Rectangle((0,0), body_width, body_height)
# Lens
lens = Solid(shift=(0, body_height/2 - lens_radius))
lens.main = Circle((0,0), lens_radius)
camera.lens = lens
# Shutter inside the lens
shutter = Solid()
shutter.main = Circle((0,0), shutter_radius)
lens.shutter = shutter
# Viewfinder on top of the body
viewfinder = Solid(shift=(0, body_height/2 + viewfinder_height/2))
viewfinder.main = Rectangle((0,0), viewfinder_width, viewfinder_height)
camera.viewfinder = viewfinder
# Position and size constraints
camera.AddConstraint(lens.bb.horizontal_center == camera.body.center.u)
camera.AddConstraint(viewfinder.bb.horizontal_center == camera.body.center.u)
# Shutter should be centered within the lens
lens.AddConstraint(Coincident(shutter.main.center, lens.main.center))
return camera
with AIDL_2D:
model = vintage_camera()
print(model.Solve())
model.Render()
```
This program should create a basic vintage camera model with a rectangular body, a circular lens, a circular shutter, and a rectangular viewfinder. Each component is correctly positioned and sized relative to the main body of the camera.
If you have any additional features or modifications you want to make, feel free to let me know, and I can update the model accordingly!
|