fogón

← Casa completaObjeto 3Dfogon/perchero

Perchero

de fogonCC04192 bloques
PercheroArrastrá para girarlo
// «Perchero» · gpt-6-sol (medium)
// A coat stand: a tall dark wooden pole on a round base with curved hooks at the top holding a red scarf, a grey coat and a brown hat, and an umbrella leaning against the base.

// Walnut base, beveled like a small piece of turned furniture.
cylinder(24, 24, 0, 9, 2, "#573a2c");
cylinder(24, 24, 2, 8, 2, "#765039");
cylinder(24, 24, 4, 6, 1, "#946847");
cylinder(24, 24, 5, 3, 2, "#69432f");
for (let x = 18; x <= 30; x++) {
  for (let y = 18; y <= 30; y++) {
    const c = get(x, y, 4);
    if (c && rand() < 0.16) set(x, y, 4, "#a47750");
  }
}

// Tall, gently highlighted wooden pole.
cylinder(24, 24, 7, 2, 33, "#62402e");
for (let z = 8; z <= 39; z++) {
  set(23, 22, z, rand() < 0.20 ? "#a07049" : "#81583b");
  if (z % 7 !== 2) set(25, 22, z, "#754b34");
  if (z % 11 < 4) set(22, 24, z, "#704730");
}
cylinder(24, 24, 34, 3, 2, "#815337");
cylinder(24, 24, 38, 3, 2, "#865a3c");
sphere(24, 24, 41, 3, "#70482f");
sphere(24, 24, 43, 2, "#956642");
set(23, 22, 44, "#b17d50");

// Three upward-curled wooden hooks.
line(23, 24, 36, 18, 23, 35, 1, "#6b432e");
line(18, 23, 35, 15, 22, 35, 1, "#795036");
line(15, 22, 35, 14, 22, 38, 1, "#916443");

line(25, 23, 37, 29, 19, 36, 1, "#704630");
line(29, 19, 36, 32, 18, 36, 1, "#825538");
line(32, 18, 36, 33, 18, 39, 1, "#a16e48");

line(26, 25, 37, 30, 28, 35, 1, "#704630");
line(30, 28, 35, 33, 29, 35, 1, "#825538");
line(33, 29, 35, 34, 29, 38, 1, "#a16e48");

// Soft grey coat, hanging toward the front-left.
box(12, 17, 16, 20, 21, 28, "#999ca1");
box(11, 18, 27, 21, 22, 30, "#adafb2");
ellipsoid(16, 19, 30, 5, 3, 2, "#b9babe");
line(11, 19, 28, 9, 18, 19, 2, "#96999e");
line(21, 19, 28, 23, 18, 19, 2, "#92959a");
box(8, 16, 18, 10, 20, 19, "#797e83");
box(22, 16, 18, 24, 20, 19, "#797e83");
box(12, 16, 16, 15, 16, 27, "#b2b4b7");
box(17, 16, 16, 20, 16, 27, "#a3a6aa");
box(12, 16, 16, 20, 17, 17, "#777b80");

// Collar and chunky folded lapels.
box(13, 16, 30, 19, 19, 31, "#d0cfd0");
line(13, 15, 30, 16, 15, 26, 1, "#d7d5d3");
line(19, 15, 30, 17, 15, 26, 1, "#c2c2c3");
for (const z of [19, 22, 25]) {
  set(17, 15, z, "#685f5b");
  set(18, 15, z, "#cbc7bd");
}
line(16, 16, 24, 16, 16, 17, 0, "#85898e");
box(12, 15, 21, 14, 15, 22, "#888c91");
box(19, 15, 21, 20, 15, 22, "#888c91");

// Red scarf: a thick loop over its hook and two uneven tails.
line(29, 17, 33, 30, 16, 37, 2, "#c74c49");
line(30, 16, 37, 34, 16, 37, 2, "#e35b53");
line(34, 16, 37, 35, 16, 33, 2, "#c94b48");
box(27, 14, 21, 29, 17, 33, "#d4514c");
box(34, 14, 25, 36, 17, 33, "#bf4545");
box(27, 13, 22, 27, 13, 32, "#ef7162");
box(34, 13, 26, 34, 13, 32, "#e36a5c");
box(27, 14, 20, 29, 17, 21, "#b83c3f");
box(34, 14, 24, 36, 17, 25, "#a9383c");
for (const x of [27, 29]) {
  for (const y of [14, 17]) set(x, y, 19, "#eaa88e");
}
for (const x of [34, 36]) set(x, 15, 23, "#eaa88e");

// Brown felt hat on the rear hook: wide brim, crown, and band.
ellipsoid(34, 29, 33, 7, 5, 1, "#a77349");
ellipsoid(34, 29, 34, 6, 4, 1, "#bd8957");
cylinder(34, 29, 34, 4, 5, "#a66d43");
ellipsoid(34, 29, 38, 4, 3, 1, "#bc8551");
cylinder(34, 29, 35, 4, 1, "#614333");
box(31, 25, 35, 37, 25, 35, "#79503a");
set(34, 25, 35, "#dbbb70");
set(35, 25, 35, "#f0d68a");
box(33, 27, 39, 35, 30, 39, "#9a633e");

// Mint umbrella leaning against the base, with a pointed closed canopy.
line(39, 13, 0, 32, 18, 25, 0, "#77736a");
for (let z = 3; z <= 20; z++) {
  const cx = 39 - (z - 1) * 0.32;
  const cy = 13 + (z - 1) * 0.23;
  const r = z < 14 ? 0.7 + (z - 3) * 0.24 : Math.max(0.9, 3.34 - (z - 14) * 0.42);
  for (let x = Math.floor(cx - r); x <= Math.ceil(cx + r); x++) {
    for (let y = Math.floor(cy - r); y <= Math.ceil(cy + r); y++) {
      const dx = x - cx, dy = y - cy;
      if (dx * dx + dy * dy <= r * r) {
        const panel = (dx > 0) !== (dy > 0);
        const shade = rand() < 0.12;
        set(x, y, z, panel
          ? (shade ? "#88c3b5" : "#76b9a9")
          : (shade ? "#b1dcd0" : "#9bcfbe"));
      }
    }
  }
}
line(39, 13, 1, 39, 13, 4, 1, "#514b4b");
line(33, 17, 19, 32, 18, 25, 0, "#9b987f");
line(32, 18, 25, 31, 18, 27, 1, "#795638");
line(31, 18, 27, 29, 18, 27, 1, "#795638");
line(29, 18, 27, 28, 18, 25, 1, "#795638");
set(28, 17, 25, "#a9784d");