diff --git a/post2-alt.html b/post2-alt.html index 8ece948..1a10122 100644 --- a/post2-alt.html +++ b/post2-alt.html @@ -1181,7 +1181,7 @@ layouts: [{ id: "standard", label: "Standard" }], eyebrow: "Mehr", head: 'Wir wollten nicht weg.
Wir wollten mehr.', - body: "KI-Lösungen, Projektmanagement, Automatisierungen. Unsere Tools sollen endlich miteinander reden.", + body: "Ein CRM, Vertrieb, Marketing, Automatisierungen. Unsere Tools sollen endlich miteinander reden.", vis: "lose", visW: 988, visLeft: 92, visBottom: 120, }, { @@ -1528,8 +1528,7 @@ const w = 216, h = 150, x = cx - w / 2, y = cy - h / 2, kopf = 40; let d = rechteck(x, y, w, h, { ue: 4 }); d += strich(x, y + kopf, x + w, y + kopf, { ue: 3 }); - let k = ""; - [0, 1, 2].forEach(i => { k += kringel(x + 18 + i * 15, y + kopf / 2, 4.4, 4.4, { ueber: .1 }); }); + const k = ""; // keine Fensterpunkte in dieser Fassung let z = ""; for (let i = 0; i < 4; i++) { const yy = y + kopf + 22 + i * 23; @@ -1540,7 +1539,7 @@ return zug(d, { w: 3.6 }) + zug(k, { w: 2.4 }) + zug(z, { w: 2.2, op: .8 }) + 'HiveGrid'; + 'letter-spacing="-0.01em" fill="' + TINTE + '">Dein Programm'; } /* ─── Aufbau ───────────────────────────────────────────────────────────── */ @@ -1964,6 +1963,50 @@ '" xmlns="http://www.w3.org/2000/svg">' + raus + ''; } + /* ─── Formen fuer die zugespitzte Fassung ─────────────────────────────── + Rueckmeldung aus dem Team: als Handwerker sieht man zu viele Dinge, die + die eigene Handwerkersoftware schon kann. Projektmanagement, Chat und + Mitarbeiter-Verwaltung sind genau das. Diese Fassung zeigt stattdessen, + was das Branchenprogramm nicht hat: Workflow-Engine, CRM, Vertrieb, + Marketing, Automatisierung, KI. + + Jede Form nimmt einen Massstab entgegen, damit dieselbe Zeichnung als + kleines Listenzeichen und als grosser Satellit taugt. */ + function formWorkflow(cx, cy, s) { + const r = 7 * s, dx = 20 * s, dy = 14 * s; + return kringel(cx - dx, cy, r) + kringel(cx + dx, cy - dy, r) + kringel(cx + dx, cy + dy, r) + + strich(cx - dx + r, cy - r * 0.3, cx + dx - r, cy - dy + r * 0.5) + + strich(cx - dx + r, cy + r * 0.3, cx + dx - r, cy + dy - r * 0.5); + } + + function formTrichter(cx, cy, s) { + const b = 20 * s, h = 15 * s; + return "M" + n1(cx - b) + "," + n1(cy - h) + "H" + n1(cx + b) + + "L" + n1(cx + b * 0.26) + "," + n1(cy + h * 0.2) + + "V" + n1(cy + h) + "L" + n1(cx - b * 0.26) + "," + n1(cy + h * 0.55) + + "V" + n1(cy + h * 0.2) + "Z"; + } + + function formMegafon(cx, cy, s) { + const b = 18 * s, h = 15 * s; + return "M" + n1(cx - b) + "," + n1(cy - h * 0.34) + + "L" + n1(cx + b * 0.28) + "," + n1(cy - h) + + "V" + n1(cy + h) + "L" + n1(cx - b) + "," + n1(cy + h * 0.34) + "Z" + + strich(cx + b * 0.56, cy - h * 0.46, cx + b * 0.94, cy - h * 0.72) + + strich(cx + b * 0.62, cy, cx + b * 1.02, cy) + + strich(cx + b * 0.56, cy + h * 0.46, cx + b * 0.94, cy + h * 0.72); + } + + function ikonWorkflow(cx, cy) { return zug(formWorkflow(cx, cy, 2.0), { w: 3 }); } + ikonWorkflow.rad = 56; ikonWorkflow.unten = 84; + function ikonTrichter(cx, cy) { return zug(formTrichter(cx, cy, 2.4), { w: 3 }); } + ikonTrichter.rad = 56; ikonTrichter.unten = 86; + function ikonMegafon(cx, cy) { return zug(formMegafon(cx, cy, 2.4), { w: 3 }); } + ikonMegafon.rad = 56; ikonMegafon.unten = 86; + const glyWorkflow = (cx, cy) => formWorkflow(cx, cy, 0.95); + const glyTrichter = (cx, cy) => formTrichter(cx, cy, 1.05); + const glyMegafon = (cx, cy) => formMegafon(cx, cy, 1.05); + /* ─── Slide 4: wir wollten mehr ────────────────────────────────────────── Die alte Fassung zeigte vier Kaesten mit "fehlt". Das ist der Mangel, die Slide handelt aber vom Wunsch. Also ein Blatt mit einer Liste. @@ -2024,10 +2067,10 @@ const LX = 60, RX = 800, OY = 70, UY = 650, KNICK = 58; const wuensche = [ - { t: "Workflow-Engine", g: glyZahnrad }, - { t: "Projektmanagement", g: glyBoard }, - { t: "Chat", g: glyBlase }, - { t: "Mitarbeiter-Management", g: glyLeute }, + { t: "Workflow-Engine", g: glyWorkflow }, + { t: "CRM", g: glyLeute }, + { t: "Vertrieb", g: glyTrichter }, + { t: "Marketing", g: glyMegafon }, ]; // Blatt mit abgeknickter Ecke unten rechts. @@ -2141,12 +2184,12 @@ // Die Winkel sind nicht frei gewaehlt: sie sind die sechs Eckwinkel der // Wabe. Dadurch sitzt jeder Knoten auf einer Ecke. const sats = [ - { a: 240, name: "KI", ikon: ikonKi }, - { a: 300, name: "Chat", ikon: ikonChat }, - { a: 0, name: "Mitarbeiter", ikon: ikonCrm }, - { a: 60, name: "Automation", ikon: ikonAuto }, - { a: 120, name: "Projekte", ikon: ikonBoard }, - { a: 180, name: "Formulare", ikon: ikonFormular }, + { a: 240, name: "KI & MCP", ikon: ikonKi, vx: -46 }, + { a: 300, name: "Marketing", ikon: ikonMegafon, vx: 46 }, + { a: 0, name: "CRM", ikon: ikonCrm }, + { a: 60, name: "Vertrieb", ikon: ikonTrichter }, + { a: 120, name: "Automatisierung", ikon: ikonAuto }, + { a: 180, name: "Workflow-Engine", ikon: ikonWorkflow }, ]; let speichen = "", knoten = "", bilder = "", schrift = ""; @@ -2161,7 +2204,7 @@ speichen += strich(ix + ux * 12, iy + uy * 12, ax - ux * 11, ay - uy * 11, { j: 1.2 }); knoten += kringel(ix, iy, 10.5, 10.5, { ueber: .1 }) + kringel(ax, ay, 10.5, 10.5, { ueber: .1 }); bilder += s.ikon(sx, sy); - schrift += '' + s.name + ''; });