import matplotlib.pyplot as plt
import matplotlib.patches as patches
fig, ax = plt.subplots(figsize=(8, 6))
frame_width = 80
frame_height = 120
ax.add_patch(patches.Rectangle(
(10, 10),
frame_width,
frame_height,
fill=False,
linewidth=3,
edgecolor='brown',
linestyle='--'
))
can_diameter = 12
can_height = 15
can_spacing = 4
cans_per_layer = (frame_width - 20) // (can_diameter + can_spacing)
for layer in range(3):
y_base = 30 + layer * (can_height + 15)
for i in range(cans_per_layer):
x_center = 20 + i * (can_diameter + can_spacing) + can_diameter/2
ax.add_patch(patches.Circle(
(x_center, y_base + can_height/2),
can_diameter/2,
color='lightblue',
alpha=0.7
))
ax.add_patch(patches.Rectangle(
(x_center - 2, y_base + can_height - 3),
4,
6,
angle=15,
color='silver'
))
for i in range(cans_per_layer - 1):
x_pos = 20 + (i + 0.5) * (can_diameter + can_spacing) + can_diameter/2
ax.plot(x_pos, 30 + can_height + 5, 'o', color='gray', markersize=8)
ax.plot(x_pos, 30 - 5, 'o', color='gray', markersize=8)
ax.set_xlim(0, frame_width + 40)
ax.set_ylim(0, frame_height + 40)
ax.set_aspect('equal')
ax.axis('equal')
ax.axis('off')
plt.figtext(0.1, 0.95, "奶粉罐玩具收纳架示意图", fontsize=12, fontweight='bold')
plt.figtext(0.1, 0.92, "1. 棕色虚线框表示木质框架(80cm×120cm)", fontsize=9)
plt.figtext(0.1, 0.89, "2. 每层可放置{}个奶粉罐".format(cans_per_layer), fontsize=9)
plt.figtext(0.1, 0.86, "3. 灰色圆点表示铆钉固定点", fontsize=9)
plt.figtext(0.1, 0.83, "4. 银色矩形表示斜嵌入的瓶口", fontsize=9)
plt.show()