fogón

← BásicoObjeto 3Dfogon/silla-de-oficina

Silla de oficina

de fogonCC011741 bloques
Silla de oficinaArrastrá para girarlo
// «Silla de oficina» · gpt-6-sol (medium)
// Office chair («Silla de oficina»).

// Office chair — front faces -y.
const ink = "#17252e";
const dark = "#203640";
const frame = "#174552";
const teal = "#246474";
const lightTeal = "#327d8d";
const steel = "#718d98";
const brightSteel = "#a4b7ba";

// Four diagonal spokes and chunky casters.
for (const [x, y] of [[8, 8], [40, 8], [8, 40], [40, 40]]) {
  line(24, 24, 8, x, y, 5, 1.6, "#435d69");
  line(24, 23, 9, x, y - 1, 7, 0, brightSteel);

  box(x - 2, y - 2, 1, x + 2, y + 2, 4, ink);
  box(x - 3, y - 1, 0, x + 3, y + 1, 2, "#1b2932");
  box(x - 2, y - 2, 4, x + 1, y + 1, 5, steel);
  box(x - 2, y - 2, 5, x, y - 1, 5, brightSteel);
  set(x - 3, y, 1, "#34444c");
}
cylinder(24, 24, 6, 4, 3, dark);
cylinder(24, 24, 8, 2, 10, steel);
box(23, 22, 9, 24, 23, 17, brightSteel);
cylinder(24, 24, 16, 4, 3, ink);

// Solid seat base, with a dark layered edge.
box(10, 11, 18, 38, 33, 20, ink);
box(9, 12, 20, 39, 32, 21, "#183b48");
box(10, 10, 21, 38, 33, 22, frame);
box(11, 11, 22, 37, 32, 23, teal);
box(12, 12, 24, 36, 31, 24, lightTeal);
box(13, 11, 24, 35, 12, 24, "#287183");

// Subtle mottling across the upholstered top.
for (let x = 13; x <= 35; x++) {
  for (let y = 13; y <= 30; y++) {
    const n = rand();
    if (n < 0.13) set(x, y, 24, "#388594");
    else if (n < 0.21) set(x, y, 24, "#2c7585");
  }
}
box(11, 10, 21, 37, 10, 21, "#102e3a");
box(12, 10, 22, 36, 10, 22, "#2b6371");
box(11, 12, 19, 37, 12, 19, "#294d59");

// Upright back: dark outer shell, softly rounded at the upper corners.
box(10, 31, 23, 36, 37, 39, dark);
box(11, 32, 40, 35, 37, 42, dark);
box(13, 33, 43, 33, 36, 43, "#193b48");
box(9, 32, 27, 10, 36, 38, "#143946");
box(36, 32, 27, 37, 36, 38, "#143946");
box(11, 30, 25, 35, 32, 39, frame);
box(12, 30, 40, 34, 33, 41, frame);
box(14, 31, 42, 33, 35, 42, "#235364");

// Raised padded sections on the front of the backrest.
for (const [bottom, top] of [[26, 29], [31, 34], [36, 39]]) {
  box(15, 29, bottom, 32, 30, top, teal);
  box(16, 28, bottom + 1, 31, 28, top - 1, "#276b7a");
  box(16, 29, top, 31, 29, top, lightTeal);
  box(14, 29, bottom, 14, 30, top, "#194a58");
  box(33, 29, bottom, 33, 30, top, "#194a58");
  box(17, 28, bottom + 1, 23, 28, bottom + 1, "#327989");
}
box(12, 29, 27, 13, 30, 38, "#205462");
box(34, 29, 27, 35, 30, 38, "#205462");
box(12, 30, 40, 34, 30, 40, "#327587");
box(13, 31, 42, 33, 31, 42, "#286676");
box(11, 31, 25, 35, 31, 25, "#122f3b");

// Armrest supports, left and right.
for (const [a, b] of [[8, 12], [36, 40]]) {
  box(a + 1, 16, 22, b - 1, 18, 27, "#566f78");
  box(a + 1, 16, 24, a + 1, 16, 26, brightSteel);
  box(a + 1, 28, 23, b - 1, 30, 28, "#3c5963");
  box(a + 1, 28, 26, a + 1, 28, 28, steel);

  // Broad, nearly black upholstered arm pad.
  box(a - 1, 12, 28, b + 1, 31, 29, ink);
  box(a, 13, 30, b, 30, 30, "#243743");
  box(a, 13, 30, b, 14, 30, "#304650");
  box(a, 13, 27, b, 14, 27, "#142a34");
  box(a - 1, 15, 28, a - 1, 28, 28, "#102b36");
}