fogón

← CiudadObjeto 3Dfogon/senal-de-peatones

Señal de peatones

de fogonCC02592 bloques
Señal de peatonesArrastrá para girarlo
// «Señal de peatones» · gpt-6-sol (medium)
// A pedestrian crossing warning sign on a thin grey metal post: a yellow diamond facing front (-y) with a black border and a black walking person silhouette on white zebra stripes. The post stands on the ground, about 34 blocks high in total.

// Pedestrian crossing sign: 35 blocks tall, facing -y.
const metal = "#858f96";
const metalLight = "#aeb8bd";
const metalDark = "#626c73";
const black = "#202529";
const yellow = "#ffd33d";

function insideSign(x, z, margin = 0) {
  return Math.abs(x - 24) / 16 + Math.abs(z - 20) / 14 <= 1 - margin;
}

// Small, sturdy foot and a thin steel post.
box(21, 22, 0, 27, 28, 1, "#9da5a5");
box(22, 23, 1, 26, 27, 2, metalDark);
box(23, 24, 2, 25, 25, 20, metal);
box(23, 24, 3, 23, 24, 19, metalLight);
box(25, 25, 3, 25, 25, 19, metalDark);

// Solid diamond with a dark metal edge, black border and warm yellow face.
for (let z = 6; z <= 34; z++) {
  for (let x = 8; x <= 40; x++) {
    if (!insideSign(x, z)) continue;

    box(x, 23, z, x, 25, z, metalDark);
    set(x, 22, z, black);

    const edge = Math.abs(x - 24) / 16 + Math.abs(z - 20) / 14;
    let color = black;
    if (edge < 0.84) {
      color = z > 25 ? "#ffe061" : yellow;
      if (z < 13) color = "#edbd2d";
      if (rand() < 0.035) color = "#f6c832";
    }
    set(x, 21, z, color);
  }
}

// Dark roadway under the white crossing stripes.
for (let z = 12; z <= 17; z++) {
  for (let x = 14; x <= 34; x++) {
    if (insideSign(x, z, 0.18)) set(x, 20, z, black);
  }
}
for (const x of [16, 21, 26, 31]) {
  box(x, 19, 13, x + 2, 19, 16, "#fffdf0");
  box(x, 19, 13, x + 2, 19, 13, "#deded5");
}

// Chunky walking pedestrian, raised in front of the crossing.
const figure = "#171b1e";
box(24, 19, 25, 26, 19, 27, figure); // head
set(25, 19, 28, figure);
box(24, 19, 21, 26, 19, 24, figure); // torso
line(24, 19, 23, 20, 19, 21, 0, figure); // swinging arms
line(26, 19, 23, 30, 19, 22, 0, figure);
line(25, 18, 21, 22, 18, 18, 0, figure); // forward leg
line(26, 18, 21, 29, 18, 18, 0, figure); // trailing leg
box(20, 18, 17, 23, 18, 17, figure);
box(28, 18, 17, 31, 18, 17, figure);

// Two tiny front-facing fasteners.
set(24, 20, 8, "#d5d7cf");
set(24, 20, 32, "#d5d7cf");