1  Die Ferse der Läuferin

Eine Langstreckenläuferin, 75 Kilogramm, im Training für einen Marathon. Über vier Monate steigert sie ihren Umfang von 40 auf 90 Kilometer die Woche. Dann schmerzt die Ferse — beim ersten Schritt am Morgen am schlimmsten. Eine Röntgenaufnahme zeigt zusätzlich einen kleinen knöchernen Fortsatz an der Unterseite ihres Fersenbeins, nahe den plantaren Ansätzen von Plantarfaszie und kurzen Fußmuskeln: einen Enthesophyten, umgangssprachlich einen Fersensporn. Ob er in diesen vier Monaten entstanden ist und ob er selbst wehtut, verrät das Bild nicht — solche Sporne finden sich auch bei Menschen, die nie Fersenschmerz hatten. Sicher ist nur, wo er sitzt.

Ihr Körper hat keinen Bauplan für einen Sporn. Nirgends steht geschrieben, dass an genau dieser Stelle Knochen entstehen soll. Und doch ist er da — dort und nicht anderswo. Das ist die Frage, die dieses ganze Buch trägt:

Woher weiß der Knochen, wo er wachsen soll — und woher weiß er es erst jetzt?

Die Antwort des Buches lässt sich in einem Satz sagen und braucht danach achtzehn Kapitel, um sie einzulösen: Der Knochen antwortet auf die Belastung, die er erfährt — und Belastung kann man ausrechnen.

Ein Wort zum zweiten Teil der Frage, dem erst jetzt. Ausrechnen wirst du das Wo: die Stelle, an der die Belastung am deutlichsten von dem abweicht, was der Knochen gewohnt ist. Das Wann rechnet dieses Buch nicht. Es sagt an keiner Stelle, nach wie vielen Wochen ein Sporn da ist — dafür müsste man wissen, wie schnell die bauenden Zellen arbeiten, und das ist eine biologische Messgröße, keine Folgerung aus der Mechanik. Was bleibt, ist trotzdem viel: Das Modell sagt, dass sich etwas ändern muss, sobald sich die Belastung ändert, und an welcher Stelle zuerst. Die vier Monate der Läuferin sind die Geschichte, aus der die Frage kommt — nicht das Ergebnis der Rechnung.

Auf den nächsten Seiten rechnest du noch nichts. Zuerst brauchst du das Bild, auf das alles Weitere zielt — und dafür schauen wir erst auf den ganzen Fuß, bevor wir auf den einen Knochen zoomen, ihn belasten und schließlich das fertige Programm bedienen.

Lernziele

Nach diesem Kapitel kannst du

  1. die Szene benennen: ein Fersenbein, drei Kräfte (Boden, Achillessehne, Plantarfaszie) und eine Einlage als die Frage, die dieses Buch stellt und offen lässt,
  2. erklären, was eine Simulation grob tut — die Wirklichkeit in kleine Stücke zerlegen, für jedes Stück einfach rechnen, alles gemeinsam lösen,
  3. die fünf Bausteine jeder FEM-Rechnung aufzählen (Geometrie und Netz, Materialgesetz, Randbedingungen, Gleichungssystem, Löser),
  4. ein farbiges Feldbild lesen: Farbe, Skala, Einheit, Orientierung,
  5. am Blackbox-Programm vorhersagen, was mehr Trainingskilometer qualitativ am Sporn ändern — und es ausprobieren.

1.1 Der Fuß als Ganzes

Bevor wir auf einen einzelnen Knochen zoomen, ein Blick auf das Ganze — denn der Fuß ist kein Klotz, sondern eine Kette aus Knochen, gehalten von Bändern und bewegt von Sehnen. Ganz hinten und unten sitzt das Fersenbein (Kalkaneus); darüber, zwischen Schienbein und Fersenbein, das Sprungbein; nach vorn folgen Fußwurzel, Mittelfußknochen und Zehen.

Zwei Dinge merke dir aus dem folgenden Bild, denn auf ihnen ruht das ganze Buch. Erstens: Die kräftige Achillessehne kommt vom roten Wadenmuskel oben und setzt an der Rückseite des Fersenbeins an — hinten am Knochen, nicht oben auf ihm. Zweitens: Die Plantarfaszie spannt sich unten entlang der Fußsohle vom Fersenbein nach vorn. Beides sind Orte, an denen Kraft in den Knochen kommt. Am zweiten, dem Ansatz der Plantarfaszie, sitzt der Sporn dieses Buches. Ob er dort sitzt, weil die Faszie zieht, ist die Frage, die am Ende offen bleibt.

Abbildung 1.1: Knochen, Sehnen und Bänder des Fußes von der Seite (Seitenansicht mit Weichteilen, Ferse hinten/links, Zehen vorn/rechts): unten hinten das Fersenbein (Kalkaneus), darüber das Sprungbein, dahinter Schienbein (Tibia) und Wadenbein (Fibula). Die Achillessehne kommt vom roten Wadenmuskel oben und setzt an der Rückseite des Fersenbeins an; die Plantarfaszie verläuft unten entlang der Sohle nach vorn. Diese Sehnenansätze sind die Orte, an denen unser Modell die Kräfte einleitet.

Deutung: Der Kalkaneus ist der Grundstein des Fußgewölbes — der Knochen, auf dem beim Aufsetzen zuerst das Gewicht lastet. Merk dir die Rückseite als Ansatz der Achillessehne: Genau dort setzt gleich unser Kraftpfeil an, und dort liegt er in jeder Grafik und Simulation dieses Buches.

1.2 Die Szene: ein Knochen, drei Kräfte, eine Frage

Das Fersenbein, lateinisch Kalkaneus, ist der größte Knochen der Fußwurzel. Wir schauen es von der Seite an, in der Ebene, die den Fuß der Länge nach teilt: ein Sagittalschnitt. Stell dir den rechten Fuß vor, von außen betrachtet — links liegt die Ferse, rechts geht es zu den Zehen, oben ist oben. Auf diese eine Ansicht ist alles Weitere gebaut, und jede Abbildung im Buch sagt dir, wo hinten und wo oben ist.

Auch der Nullpunkt der Maße liegt in dieser Ansicht fest, und er bleibt es im ganzen Buch: hinten unten am Knochen. Von dort misst die erste Koordinate nach vorn Richtung Zehen, die zweite nach oben. Der Knochen ist in dieser Ansicht 66 Millimeter lang; eine Angabe wie „24 Millimeter vorn, 3 Millimeter oben“ bezeichnet also die Stelle an der Unterseite, an der gleich der Sporn auftauchen wird.

Drei Kräfte treffen den Knochen bei jedem Schritt. Von unten drückt der Boden zurück — die Bodenreaktionskraft, aufgefangen vom Fersenpolster. Hinten oben zieht die Achillessehne, wenn die Wade anspannt. Vorn unten zieht die Plantarfaszie, das straffe Bindegewebsband der Fußsohle. Diese drei wirken zusammen, und ihr Zusammenspiel dreht sich im Lauf eines einzigen Schrittes — mehr dazu in Kapitel 2, wo du jede der drei am eigenen Fuß ertasten wirst.

Code
import json
import pathlib

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import FancyArrow

kontur = json.loads(
    pathlib.Path("../geometrie/kalkaneus_kontur.json").read_text())
p = np.array(kontur["punkte"]) * 1000.0        # m -> mm
xs, ys = p[:, 0], p[:, 1]

fig, ax = plt.subplots(figsize=(7.2, 5.4))
ax.fill(xs, ys, color="#f0e2d0", ec="#a9825f", lw=1.8, zorder=2)

# Die drei Kräfte als Pfeile (schematisch, Richtung zählt, nicht Betrag).
def pfeil(x0, y0, x1, y1, farbe, text, tx, ty):
    ax.add_patch(FancyArrow(x0, y0, x1 - x0, y1 - y0, width=0.5,
                            head_width=3.0, length_includes_head=True,
                            color=farbe, zorder=4))
    ax.text(tx, ty, text, color=farbe, fontsize=11, fontweight="bold",
            zorder=5)

# Bodenreaktion unter dem Tuber (geprüfte Boden-Randgruppe: x < 19 mm),
# Plantarfaszie am vorderen unteren Abhang der Tuberositas (Enthese,
# x ≈ 22–26 mm) — auf die Kontur projizierte Angriffspunkte wie in Kapitel 2.
pfeil(8.594, -12, 8.594, 2.237, "#1f77b4", "Bodenreaktion", -27, -12)
# Achillessehne: setzt an der HINTEREN (linken) Fläche des Fersenbeins an —
# der posterioren Fläche des Tuber calcanei — und zieht von dort nach oben
# zur Wade. Ansatzort gemäß der anatomischen Referenz (@fig-kap01-fuss),
# NICHT auf dem Scheitel des Knochens.
pfeil(4, 29, 1, 52, "#d62728", "Achillessehne", -14, 57)
# Endpunkt so gewählt, dass der Pfeil in die kanonische Faszienrichtung
# (0,985; −0,174) zeigt (Zugrichtung aus dem Zahlenkanon).
pfeil(24.065, 3.353, 50, -1.23, "#2ca02c", "Plantarfaszie", 40, -8)

# Der Sporn-Ort am vorderen unteren Abhang (projizierter Konturpunkt).
ax.scatter([24.07], [3.35], s=90, facecolor="none", edgecolor="#7a2b8a", lw=2,
           zorder=6)
ax.annotate("Fersensporn\n(Enthesophyt)", xy=(24.07, 3.35), xytext=(12, -16),
            color="#7a2b8a", fontsize=10,
            arrowprops=dict(arrowstyle="->", color="#7a2b8a"))

# Orientierung und Maßstab.
ax.text(-27, 6, "hinten (Ferse)", fontsize=10, color="#555")
ax.text(52, 33, "vorn (Zehen)", fontsize=10, color="#555")
ax.add_patch(FancyArrow(-20, 16, 0, 12, width=0.15, head_width=2.2,
                        color="#555"))
ax.text(-20, 31, "oben", fontsize=10, color="#555", ha="center")
ax.plot([40, 50], [48, 48], color="#333", lw=2)
ax.text(40, 50, "10 mm", fontsize=9, color="#333")

ax.set_xlim(-30, 74)
ax.set_ylim(-28, 62)
ax.set_aspect("equal")
ax.axis("off")
plt.tight_layout()
plt.show()
Abbildung 1.2: Die Szene, die uns durch das ganze Buch begleitet: das Fersenbein im Seitenschnitt (Sagittalschnitt), hinten die Ferse, vorn Richtung Zehen, oben oben. Drei Kräfte greifen an — die Bodenreaktion von unten, die Achillessehne hinten oben, die Plantarfaszie vorn unten. Nahe den plantaren Ansätzen (Enthesen) sitzt der Fersensporn. Kontur maßstabsgetreu aus der Geometrie des Buches (Länge 66 mm, aus dem Zahlenanhang).

Diese eine Szene kehrt in jedem Kapitel wieder. Alles, was das Buch aufbaut, dient dazu, aus diesen drei Kräften und dieser Form vorherzusagen, wo sich der Knochen verändert.

Auf einer Röntgenaufnahme des Fußes lässt sich ein Sporn leicht erkennen — erklären lässt er sich damit noch nicht. Dieses Buch zeigt keine solche Aufnahme; die folgende Gegenüberstellung ist ein Schema aus derselben Knochenkontur — einmal ohne, einmal mit dem knöchernen Auswuchs an der Unterseite.

Code
import json
import pathlib

import numpy as np
import matplotlib.pyplot as plt

kontur = json.loads(
    pathlib.Path("../geometrie/kalkaneus_kontur.json").read_text())
p = np.array(kontur["punkte"]) * 1000.0
xs, ys = p[:, 0], p[:, 1]

# Der Sporn als knoecherner Dorn. Er sitzt an der Stelle, die @fig-kap01-szene
# markiert (plantare Enthese, auf die Kontur projiziert: 24,07/3,35 mm), setzt
# mit seiner Basis auf der Konturunterseite auf und waechst in die Zugrichtung
# der Plantarfaszie (0,985; -0,174) nach vorn zu den Zehen. Laenge schematisch.
enthese = np.array([24.065, 3.353])
tuber_unten = np.array([21.816, 0.0])       # tiefster Konturpunkt davor
richtung_faszie = np.array([0.985, -0.174])
spitze = 0.5 * (enthese + tuber_unten) + 7.0 * richtung_faszie
sporn_x = [tuber_unten[0], spitze[0], enthese[0]]
sporn_y = [tuber_unten[1], spitze[1], enthese[1]]

fig, achsen = plt.subplots(2, 1, figsize=(6.4, 7.6))
for ax, mit_sporn in zip(achsen, [False, True]):
    ax.fill(xs, ys, color="#f0e2d0", ec="#a9825f", lw=1.6)
    if mit_sporn:
        ax.fill(sporn_x, sporn_y, color="#e7cfae", ec="#a9825f", lw=1.6)
        ax.scatter([25.8], [1.4], s=1500, facecolor="none",
                   edgecolor="#7a2b8a", lw=2)
        ax.set_title("mit Fersensporn", fontsize=11)
    else:
        ax.set_title("ohne Fersensporn", fontsize=11)
    ax.text(-2, 44, "hinten", fontsize=9, color="#666")
    ax.text(52, 33, "vorn", fontsize=9, color="#666")
    ax.set_xlim(-12, 70)
    ax.set_ylim(-12, 50)
    ax.set_aspect("equal")
    ax.axis("off")
plt.tight_layout()
plt.show()
Abbildung 1.3: Schema (kein Röntgenbild): dasselbe Fersenbein ohne und mit plantarem Fersensporn, gleiche Ausrichtung wie in Abbildung 1.2. Der Auswuchs sitzt an der Unterseite, an der plantaren Enthese, die Abbildung 1.2 markiert; er wächst als schmaler Dorn nach vorn zu den Zehen — in die Zugrichtung der Plantarfaszie, dem grünen Pfeil der vorigen Abbildung entlang. Seine Länge ist hier schematisch überzeichnet, damit die Form lesbar bleibt. Die Bilder stehen untereinander, damit die Form in beiden gleich groß lesbar bleibt.

Der Auswuchs ist klein, aber er sitzt an einer ganz bestimmten Stelle. Warum dort? Der erste Verdacht lautet: weil dort die Belastung am größten ist. Ob der Knochen wirklich auf das Maximum antwortet oder auf etwas Feineres — auf die Abweichung von dem, was er gewohnt ist —, klärt erst Teil VI. Sicher ist schon jetzt: Man muss wissen, wie die Belastung im Knochen verteilt ist. Und das ist eine Rechenaufgabe.

1.3 Der Körper als Labor

Zwei der drei Kräfte kannst du gleich jetzt spüren. Stell dich hin und verlagere das Gewicht auf eine Ferse — das ist die Bodenreaktion, von unten. Taste hinten oberhalb der Ferse den Strang unter der Haut, einmal mit lockerem Fuß und einmal, während du die Ferse anhebst: Unter Zug wird die Achillessehne hart. Die dritte, die Plantarfaszie, spannt sich unter der Fußsohle, wenn du die Großzehe nach oben ziehst. Eine Randbedingung, die man gespürt hat, muss man nicht auswendig lernen.

Im Lauf eines Schrittes wechseln sich diese Kräfte ab — die Ferse trifft zuerst auf, der Fuß rollt nach vorn ab, zuletzt stoßen sich die Zehen ab. Die drei Kräfte lösen einander dabei ab. Ihre Beträge stehen im ganzen Buch als Vielfache des Körpergewichts, abgekürzt KG: „2,5 · KG” heißt zweieinhalbmal das eigene Gewicht. Das rechnet sich bequem und macht die Zahlen von der Person unabhängig; für die 75 Kilogramm dieser Szene sind 2,5 · KG rund 1840 Newton, denn ein KG entspricht hier 736 Newton (Zahlenanhang). Der folgende Betrachter hat einen Schieberegler mit fünf Rasten: Zieh ihn Phase für Phase durch und vergleiche, welche Kraft wann am größten ist — von links (Fersenauftritt) nach rechts (Abstoß). Die vierte Kraft im Spiel — die Gelenkkraft, mit der das Sprungbein von oben dagegenhält — kommt in Kapitel 12 wieder vor, dort als Reaktion des Lagers, mit dem das Modell das Sprungbein ersetzt.

WichtigVorhersage-Punkt

Fünf Phasen von Fersenauftritt bis Abstoß: In welcher zieht die Achillessehne am stärksten — gleich beim Auftritt, oder erst beim Abstoß? Lege dich fest, dann schiebe den Regler durch.

Deutung. Kein Moment allein macht den Sporn. Der Knochen antwortet auf die ganze Belastungsgeschichte — wie oft welcher Moment vorkommt. Genau deshalb sind Laufstil und Trainingsumfang Regler und nicht bloß Zahlen: Der Laufstil verschiebt, wie schwer die einzelnen Momente wiegen; der Trainingsumfang skaliert, wie oft sie zusammenkommen. Ab Teil V rechnest du diese fünf Momente einzeln.

1.4 Ein Feldbild lesen

Gleich bedienst du das erste Programm, und von da an zeigt fast jede Abbildung dieses Buches ein Feld: eine Größe, die nicht an einer Stelle einen Wert hat, sondern an jeder. Ein Feld lässt sich nicht als Zahl hinschreiben, deshalb wird es eingefärbt. Vier Dinge musst du dafür lesen können, und sie stehen an jeder Abbildung.

Die Farbe ist eine Zahl. Neben dem Bild steht ein Farbbalken mit Werten und Einheit — die Werte-Legende. Sie ist kein Schmuck: Ohne sie bedeutet eine Farbe nichts. Erst der Balken macht aus „hier ist es hell“ die Aussage „hier sind es 0,9 Gramm je Kubikzentimeter“.

Die Skala gehört zum Bild, nicht zum Knochen. Man darf sie wählen, und die Wahl entscheidet, wie dramatisch ein Feld aussieht. Damit du Bilder aus verschiedenen Kapiteln vergleichen kannst, hält dieses Buch zwei Skalen fest: Spannungen laufen von 0 bis 1000 Kilopascal (dunkelblau über grün zu rot), Dichten von 0,2 bis 1,0 Gramm je Kubikzentimeter (schwarz über violett zu hellgelb). Wo eine Abbildung einen anderen Bereich braucht, sagt sie es in ihrer Unterschrift.

Wo ist hinten, wo ist oben. An jedem Feldbild steht die Orientierung — hinten (Ferse) links, vorn (Zehen) rechts, oben oben — und dazu der Maßstab, entweder als beschriftete Achse in Millimetern oder als kurzer Balken. Ohne beides wüsstest du nicht, ob eine helle Stelle an der Sohle oder am Sprunggelenk liegt und wie groß sie ist.

Rot heißt viel, nicht gefährlich. Die Farbe sagt, wo ein Wert groß ist — nicht, ob er bedenklich ist. Ob eine Spannung ein Gewebe überfordert, entscheidet der Vergleich mit einer Festigkeit, und den zieht dieses Buch nirgends. Wer ein rotes Feld sieht und „Bruchgefahr“ denkt, hat die Skala gelesen und das Bild missverstanden.

Wie viel die Skala ausmacht, zeigt die folgende Abbildung. Sie stellt dasselbe gerechnete Dichtefeld zweimal dar: einmal auf der festen Skala des Buches, einmal auf einer Skala, die nur den Bereich der tatsächlich vorkommenden Werte umfasst.

Code
import sys
import json
import pathlib

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.tri import Triangulation

sys.path.insert(0, "programme/gemeinsam")
sys.path.insert(0, "programme/kap01")
from blackbox_kern import neues_blackbox

daten = json.loads(pathlib.Path("netze/netz_grob.json").read_text())
modell = neues_blackbox(daten)
knoten = np.array(daten["knoten"]) * 1000.0
tri = Triangulation(knoten[:, 0], knoten[:, 1], np.array(daten["dreiecke"]))

dichte = np.array(modell.blackbox(75, 90, "fersenlauf", "keine")["dichte"])

fig, achsen = plt.subplots(2, 1, figsize=(6.4, 6.4))
bereiche = [(0.2, 1.0, "feste Skala des Buches: 0,2–1,0 g/cm³"),
            (float(dichte.min()), float(dichte.max()),
             "gespreizte Skala: nur die vorkommenden Werte")]
for ax, (unten, oben, titel) in zip(achsen, bereiche):
    bild = ax.tripcolor(tri, facecolors=dichte, cmap="magma",
                        vmin=unten, vmax=oben)
    ax.set_title(titel, fontsize=11)
    ax.set_aspect("equal")
    ax.set_ylabel("y (mm)")
    fig.colorbar(bild, ax=ax, fraction=0.046, pad=0.03,
                 label="Dichte (g/cm³)")
achsen[-1].set_xlabel("hinten (Ferse) ←→ vorn (Zehen),  x (mm)")
plt.tight_layout()
plt.show()
Abbildung 1.4: Ein Feld, zwei Skalen (Bilder untereinander): oben das Dichtefeld des Fersenbeins auf der festen Skala des Buches (0,2–1,0 g/cm³, magma), unten dasselbe Feld auf einer gespreizten Skala, die nur die vorkommenden Werte umfasst. Die Farben unterscheiden sich stark, die Rechnung ist dieselbe — deshalb gehört die Werte-Legende zu jedem Feldbild. Szene: 75 kg, 90 km pro Woche, Fersenlauf, keine Einlage; Sagittalschnitt, hinten links, vorn rechts, oben ↑.

Deutung. Beide Bilder zeigen dieselben Zahlen. Im unteren wirkt die verdichtete Stelle heller und kräftiger, weil dort schon der größte vorkommende Wert die hellste Farbe bekommt; im oberen bleibt sie ein Stück darunter, denn dort steht die hellste Farbe für 1,0 Gramm je Kubikzentimeter — einen Wert, den diese Rechnung gar nicht erreicht. Wie dramatisch ein Feld wirkt, hängt an der Skala; was es aussagt, steht in der Legende. Deshalb die Regel: erst die Legende lesen, dann das Bild.

1.5 Die Blackbox zum Anfassen

Du hast die drei Kräfte jetzt gespürt und über den Schritt wandern sehen. Rechnen wirst du sie noch nicht — aber du darfst schon das Ziel bedienen: ein Vorführmodell dessen, was am Ende des Buches steht — dieselbe Frage, aber ein bewusst vereinfachtes Innenleben. Die Simulation dahinter rechnet mit einheitlichem Material und vereinfachter Lagerung, und wo gebaut wird, gibt hier noch die Anatomie vor (die Zone der plantaren Enthese); die ausgewachsene Rechnung in Kapitel 18 bestimmt den Ort selbst aus dem Reizfeld. Vier Regler, ein Ergebnis: das Dichtefeld des Knochens, in dem sich die Sporn-Stelle plantar verdichtet oder eben nicht. Was sich ändert, ist die Dichte — wie hart der Knochen an jeder Stelle wird; die äußere Form des Knochens bleibt dabei, wie sie ist. Helle Farbe heißt dichterer, härterer Knochen.

Alle vier Regler bedienen dasselbe Bild: Sie stehen gemeinsam über einem einzigen Dichtefeld, und jede Bewegung — egal an welchem Regler — lässt genau dieses eine Feld neu rechnen. So sieht man unmittelbar, dass Gewicht, Umfang, Laufstil und Einlage an ein und demselben Ergebnis drehen. Jeder Regler kommt mit einer Frage. Der Trick beim Lernen ist alt und wirkt: Erst tippen, dann schieben. Wer sich vorher festlegt und dann widerlegt wird, behält es.

WichtigVorhersage-Punkt

Lege dich für jede der vier Fragen fest, bevor du schiebst:

  1. Körpergewicht: Doppeltes Gewicht — doppelt so großer Sporn, oder reagiert der Knochen anders?
  2. Kilometer pro Woche: Ab welchem Umfang springt im Modell überhaupt etwas an — sofort, oder gibt es eine Schwelle, unter der nichts geschieht?
  3. Laufstil: Vorfußlauf setzt die Ferse weicher auf. Wird die Verdichtung dadurch kleiner, oder bleibt sie gleich, weil Sehne und Faszie stärker ziehen? (Wo sie sitzt, gibt in diesem Vorführmodell noch die Anatomie vor; ob der Ort wandern kann, ist eine andere Frage.)
  4. Einlage: Ein weiches Polster unter der Ferse — macht das den Sporn kleiner, oder verschiebt es die Last nur woanders hin?
Code
import sys
import json
import pathlib

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.tri import Triangulation

sys.path.insert(0, "programme/gemeinsam")
sys.path.insert(0, "programme/kap01")
from blackbox_kern import neues_blackbox

daten = json.loads(pathlib.Path("netze/netz_grob.json").read_text())
modell = neues_blackbox(daten)
knoten = np.array(daten["knoten"]) * 1000.0
tri = Triangulation(knoten[:, 0], knoten[:, 1], np.array(daten["dreiecke"]))

kilometer = [0, 40, 90]
fig, achsen = plt.subplots(3, 1, figsize=(6.4, 9.0))
for ax, km in zip(achsen, kilometer):
    erg = modell.blackbox(75, km, "fersenlauf", "keine")
    bild = ax.tripcolor(tri, facecolors=np.array(erg["dichte"]),
                        cmap="magma", vmin=0.2, vmax=1.0)
    ax.set_title(f"{km} km/Woche", fontsize=11)
    ax.set_aspect("equal")
    ax.set_ylabel("y (mm)")
    fig.colorbar(bild, ax=ax, fraction=0.046, pad=0.03,
                 label="Dichte (g/cm³)")
achsen[-1].set_xlabel("hinten (Ferse) ←→ vorn (Zehen),  x (mm)")
plt.tight_layout()
plt.show()
Abbildung 1.5: Bildreihe des Kilometer-Reglers: das Dichtefeld des Fersenbeins bei 0, 40 und 90 km pro Woche, alle auf der festen Dichteskala 0,2–1,0 g/cm³ (magma-Skala). Unter der Schwelle bleibt der Knochen weich (dunkel); mit dem Umfang verdichtet sich die Sporn-Stelle plantar. Dieselbe Blackbox rechnet hinter den Reglern.

Was am Regler zu sehen ist. Das Gewicht geht überlinear in den Antrieb ein — doppelte Kraft speichert mehr als doppelt so viel Verformungsarbeit im Gewebe —, aber die Antwort sättigt: Von 50 auf 100 kg wächst die Verdichtung deutlich, doch nicht auf das Doppelte. Die Kilometer haben im Modell eine Schwelle: Unter etwa 18 pro Woche rührt sich nichts, darüber wächst die Verdichtung zusehends. Merk dir diese Schwelle. Sie ist kein Zufall der Programmierung, sondern die erste Spur einer Eigenschaft des lebenden Knochens, die in Kapitel 16 einen Namen bekommt.

Vorfußlauf und ein Fersenpolster machen die Verdichtung kleiner, weil sie im druckbetonten Vorführmodell die Last an der Ferse senken. Ob sie den Ort verschieben, kann dieses Modell nicht sagen: Der Ort ist hier vorgegeben, nicht gerechnet. Und ob das Ganze im echten Fuß so ist, ist offen — Vorfußlauf erhöht zugleich den Zug von Achillessehne und Faszie. Was der Regler zeigt, folgt aus den Annahmen, die in ihm stecken — eine Aussage über den Fuß der Läuferin wird daraus erst, wenn jemand geprüft hat, ob diese Annahmen tragen. Wie man das prüft, zeigt Kapitel 13.

Beim vierten Regler lohnt es sich, genau hinzusehen. Die Einlage ist die eine Frage, die dieses Buch stellt und offen lässt. Ein weiches Polster verändert, wie der Fuß auf dem Boden aufliegt — und wie groß eine Auflagefläche ist, hängt davon ab, wie stark man drückt. Genau das rechnet keines der Modelle dieses Buches: Sie geben die Lasten vor, statt die Berührung mit dem Boden selbst zu bestimmen. Der Regler zeigt dir also, was eine gedämpfte und breiter verteilte Bodenlast bewirkt — angenommen, nicht ausgerechnet. Was eine bestimmte Einlage an einem bestimmten Fuß bewirkt, steht damit nicht fest. Am Ende des Buches, in Kapitel 18, wirst du genau sagen können, welcher Baustein dafür fehlt — und das ist mehr wert als eine Zahl, der man nicht trauen dürfte.

Damit stellt sich zum ersten Mal die Frage, die dieses Buch von einem Ratgeber trennt: Wer sagt hier eigentlich was? Dafür gibt es einen Kasten, und er kehrt an den zwei Stellen wieder, an denen es besonders darauf ankommt — bei der Einlage in Kapitel 12 und beim Sporn in Kapitel 18.

HinweisDas Modell sagt · die Studienlage sagt · dein Arzt sagt

Das Modell sagt: Mehr Kilometer verdichten die Stelle an der plantaren Enthese, unterhalb einer Schwelle geschieht nichts, und eine gedämpfte Bodenlast senkt die Verdichtung. Das ist eine Aussage über dieses vereinfachte Vorführmodell — über seine Annahmen, seine Geometrie, seine Kräfte.

Die Studienlage sagt: Ein Sporn findet sich auch bei Menschen ohne jede Beschwerde, und ob er selbst schmerzt, ist nicht geklärt. Ob ihn Zug oder Druck entstehen lässt, ist bis heute strittig — genau deshalb rechnest du am Ende des Buches beide Vermutungen.

Dein Arzt sagt: Was an einem bestimmten Fuß los ist und was ihm hilft — Pause, Übungen, Einlage —, entscheidet eine Untersuchung, keine Rechnung. Dieses Buch gibt dazu keine Empfehlung und ersetzt keine.

Der Aufbau geschieht nicht auf einen Schlag. Die folgende Animation zeigt den Übergang vom Ausgangs- zum Endzustand des Modells.

Feste Beispielszene: 75 kg Körpergewicht, 90 Kilometer pro Woche, Fersenlauf, keine Einlage. Die Bildfolge überblendet zwischen zwei Zuständen — keine echten Umbau-Schritte, in denen jede neue Dichte wieder in die Rechnung eingeht, und keine Zeitachse; beides rechnest du ab Teil VI selbst.

Ein weit verbreiteter Kurzschluss lauert hier — und er ist wichtig genug für einen eigenen Kasten.

WarnungDer Computer weiß es nicht besser als sein Modell

Vermutung: „Wenn die Simulation den Sporn zeigt, dann ist damit bewiesen, dass er so entsteht.”

Warum das naheliegt: Ein buntes Bild aus einem Rechner wirkt wie eine Messung. Es hat Zahlen, Farben, Nachkommastellen — es sieht nach Wahrheit aus.

Was stattdessen gilt: Das Programm rechnet ein Ersatzproblem aus endlich vielen Zahlen. Es sagt aus, was das Modell vorhersagt — nicht, was der Körper tut. Deshalb streitet die Forschung an dieser Stelle bis heute, ob Zug der Faszie oder Druck von unten den Sporn treibt. Und deshalb wirst du in Kapitel 18 beide Vermutungen selbst durchrechnen, statt einer zu glauben. Ein Modell ist gut nicht, weil es hübsche Bilder macht, sondern weil es Vermutungen unterscheidbar macht.

1.6 Was eine Simulation eigentlich tut

Wie kommt ein Programm überhaupt zu so einem Bild? Der Grundgedanke ist derselbe wie bei der Wettervorhersage. Niemand rechnet „das Wetter” in einem Zug. Man legt ein Gitter über die Landkarte, rechnet für jede kleine Zelle einfache Regeln — Luft strömt von hoch zu niedrig, warm steigt auf — und fügt die Zellen zu einem Gesamtbild zusammen. Keine Zelle wird dabei für sich allein gelöst: An den gemeinsamen Rändern hängt jede an ihren Nachbarn, und erst alle zugleich ergeben ein stimmiges Bild. Fein genug zerlegt, ergibt viel einfaches Rechnen so ein Bild, das keiner in einem Schritt hätte hinschreiben können.

Beim Knochen heißen die kleinen Stücke finite Elemente — endlich viele, endlich kleine Bausteine —, und ihre Methode macht es genauso: Sie zerlegt die Fläche in viele kleine Dreiecke — das Netz —, rechnet für jedes Dreieck eine einfache Beziehung zwischen Verschiebung und Kraft, und fügt am Ende alle Dreiecke zu einem einzigen großen Gleichungssystem zusammen, das der Löser auf einmal beantwortet. Wie fein man zerlegt, ist eine Entscheidung — und man sieht ihr das Ergebnis an.

Code
import json
import pathlib

import numpy as np
import matplotlib.pyplot as plt

kontur = json.loads(
    pathlib.Path("../geometrie/kalkaneus_kontur.json").read_text())
pk = np.array(kontur["punkte"]) * 1000.0

grob = json.loads(pathlib.Path("netze/netz_grob.json").read_text())
fein = json.loads(pathlib.Path("netze/netz_fein.json").read_text())

fig, achsen = plt.subplots(3, 1, figsize=(6.2, 9.2))

achsen[0].fill(pk[:, 0], pk[:, 1], color="#f0e2d0", ec="#a9825f", lw=1.6)
achsen[0].set_title("eine Fläche", fontsize=11)

for ax, netz, titel in [(achsen[1], grob, "grobes Netz"),
                        (achsen[2], fein, "feines Netz")]:
    kn = np.array(netz["knoten"]) * 1000.0
    ax.triplot(kn[:, 0], kn[:, 1], np.array(netz["dreiecke"]),
               color="#8a4a10", lw=0.4)
    ax.set_title(f"{titel} ({netz['n_dreiecke']} Dreiecke)", fontsize=11)

for ax in achsen:
    ax.set_aspect("equal")
    ax.axis("off")
plt.tight_layout()
plt.show()
Abbildung 1.6: Zerlegen in drei Stufen (untereinander, damit die Dreiecke lesbar bleiben): dieselbe Fersenkontur als eine Fläche, als grobes Netz und als feines Netz. Je feiner das Netz, desto näher kommt die Rechnung dem Original — meist; wann das gutgeht und wann nicht, prüft Kapitel 13 mit der Konvergenzstudie. Netze aus der Buch-Geometrie (bildbasierte Kalkaneus-Kontur).

Fünf Bausteine braucht jede solche Rechnung, und du wirst sie alle kennenlernen: die Geometrie und das Netz (die Form, zerlegt in Dreiecke), das Materialgesetz (wie hart das Gewebe auf Dehnung antwortet), die Randbedingungen (wo gedrückt, gezogen, gehalten wird), das Gleichungssystem (alle Dreiecke gleichzeitig zufriedenstellen) und den Löser (der es beantwortet). Fehlt einer, gibt es kein Bild.

1.7 Wie dieses Buch rechnet

Ein Buch über eine Rechenmethode kann sich verstecken oder es sagen. Dieses sagt es: Hinter dem, was du hier siehst, stecken drei verschiedene Rechnungen, und sie haben verschiedene Aufgaben.

Der Code, den du liest. In den Kapiteln steht Programmcode, den du Zeile für Zeile mitlesen kannst — in deutschen Namen, ohne fertige Bibliotheken, und immer an einem winzigen Netz aus einer Handvoll Dreiecken. Es ist so klein, dass du das Ergebnis mit Stift und Papier nachprüfen kannst, und genau dafür ist es da. Wer verstehen will, wie die Methode arbeitet, lernt es hier — und nur hier.

Der Rechner hinter den Reglern. Jeder Regler in diesem Buch löst wirklich. Bewegst du ihn, rechnet dein Browser die Aufgabe neu, auf einem Netz mit einigen tausend Dreiecken statt einer Handvoll, mit denselben Verfahren, aber in geübter, schneller Form. Sein Code steht nicht im Text — nicht, weil er geheim wäre, sondern weil er nichts erklärt, was der mitlesbare Code nicht schon zeigt.

Die Vergleichsrechnung. Manche Zahlen kann ein Browser nicht liefern: Sie brauchen Netze mit Zehntausenden von Knoten und Minuten statt Sekundenbruchteilen. Diese Rechnungen laufen vorher, außerhalb des Buches, auf einer aus Bilddaten gewonnenen Fersenkontur. Wo dieses Buch eine Zahl als belastbar zitiert — Spannungen, Reize, Orte —, stammt sie von dort, und der Text sagt es dann.

Wo die Zahlen herkommen. Material, Kräfte, Maße: Jede Zahl, mit der gerechnet wird, steht einmal im Zahlenanhang am Ende des Buches, mit Einheit, Herkunft und Beleg. Kein Kapitel führt eine eigene Zahl ein. Wenn dir in einer Rechnung ein Wert begegnet, den du dort nicht findest, hast du einen Fehler gefunden.

Und wer prüft das? Bei jedem Bau dieses Buches wird der mitlesbare Code gegen den Rechner hinter den Reglern gehalten: Rechnen beide dieselbe Aufgabe, müssen sie bis auf die letzte angezeigte Stelle dasselbe herausbekommen. Tun sie es nicht, ist das Buch fehlerhaft und nicht etwa der Lehrcode „vereinfacht“. Diese Prüfung ist der Grund, warum du dem kleinen Beispiel trauen darfst, obwohl das Bild aus dem großen kommt.

1.8 Die Landkarte des Buches

Jetzt hast du das Ziel gesehen und weißt, aus welchen fünf Bausteinen es gebaut ist. Was dir noch fehlt, ist jeder einzelne Baustein — und den liefert je ein Teil des Buches. Die Landkarte zeigt in der oberen Reihe, welches Kapitel welchen Baustein beisteuert. In der unteren Reihe stehen die Kapitel, die keinen eigenen Baustein tragen und trotzdem gebraucht werden: die Kraftpfeile, die Ableitung und das Integral, das Gleichgewicht und seine abgeschwächte Form, das erste vollständig durchgerechnete Netz und die Prüfung des fertigen Bildes. Gerade vor diesen Kapiteln haben die meisten Respekt, und gerade sie machen aus einem bunten Bild eine Aussage. Die Landkarte kehrt am Ende jedes Teils wieder und markiert, wie weit du gekommen bist.

Code
import matplotlib.pyplot as plt
from matplotlib.patches import FancyBboxPatch, FancyArrowPatch

bausteine = [
    ("Geometrie\n& Netz", "Kapitel 10", "#cfe8f3"),
    ("Material-\ngesetz", "Kapitel 6", "#d7eecd"),
    ("Rand-\nbedingungen", "Kapitel 12", "#f6e0c0"),
    ("Gleichungs-\nsystem", "Kapitel 4–5", "#e6d5f0"),
    ("Löser", "Kapitel 5", "#f3d0d0"),
]

# Die Werkzeuge: die Kapitel, die keinen eigenen Baustein tragen, ohne die
# aber keiner der fünf Bausteine zu rechnen wäre.
werkzeuge = [
    ("Kraftpfeile\n& Vektoren", "Kapitel 2–3"),
    ("Steigung\n& Fläche", "Kapitel 7"),
    ("Gleichgewicht,\nschwache Form", "Kapitel 8–9"),
    ("Rechnen\n& prüfen", "Kapitel 11, 13"),
    ("Schritt\n& Spitzen", "Kapitel 14–15"),
]

fig, ax = plt.subplots(figsize=(8.2, 5.0))
x = 0.0
for (name, kap, farbe), (wname, wkap) in zip(bausteine, werkzeuge):
    ax.add_patch(FancyBboxPatch((x, 1.0), 1.5, 1.0,
                 boxstyle="round,pad=0.03", fc=farbe, ec="#556"))
    ax.text(x + 0.75, 1.5, name, ha="center", va="center", fontsize=10)
    ax.text(x + 0.75, 0.78, kap, ha="center", va="top", fontsize=9,
            color="#335")
    if x > 0:
        ax.add_patch(FancyArrowPatch((x - 0.35, 1.5), (x - 0.02, 1.5),
                     arrowstyle="->", mutation_scale=14, color="#556"))
    # Werkzeugkasten darunter, ohne Pfeilkette: die Werkzeuge stehen neben
    # der Kette, nicht in ihr.
    ax.add_patch(FancyBboxPatch((x, -0.55), 1.5, 0.85,
                 boxstyle="round,pad=0.03", fc="#eceef1", ec="#889"))
    ax.text(x + 0.75, -0.12, wname, ha="center", va="center", fontsize=9)
    ax.text(x + 0.75, -0.72, wkap, ha="center", va="top", fontsize=8.5,
            color="#445")
    x += 1.85

# Ergebniskasten rechts.
ax.add_patch(FancyBboxPatch((x + 0.1, 0.9), 1.9, 1.2,
             boxstyle="round,pad=0.03", fc="#fbeecb", ec="#a86"))
ax.text(x + 1.05, 1.7, "Spannungsbild", ha="center", fontsize=10)
ax.text(x + 1.05, 1.35, "↓ Knochenumbau", ha="center", fontsize=9,
        color="#663")
ax.text(x + 1.05, 1.05, "der Sporn (Teil VI)", ha="center", fontsize=9,
        color="#663")
ax.add_patch(FancyArrowPatch((x - 0.35, 1.5), (x + 0.05, 1.5),
             arrowstyle="->", mutation_scale=14, color="#556"))

ax.text(-0.2, 2.25, "Die fünf Bausteine", fontsize=10, color="#334",
        fontweight="bold")
ax.text(-0.2, 0.42, "Die Werkzeuge dazu", fontsize=10, color="#334",
        fontweight="bold")

ax.set_xlim(-0.3, x + 2.2)
ax.set_ylim(-1.1, 2.5)
ax.axis("off")
plt.tight_layout()
plt.show()
Abbildung 1.7: Die Landkarte des Buches. Obere Reihe: die fünf Bausteine der Fersen-Simulation und das Kapitel, das jeden liefert; aus ihnen entsteht das Spannungsbild, aus dem Spannungsbild über die Rückkopplung des Knochenumbaus der Sporn. Untere Reihe: die Werkzeugkapitel, ohne die kein Baustein hält — von den Kraftpfeilen bis zur Prüfung des fertigen Bildes. Diese Landkarte begleitet das Buch und füllt sich Teil für Teil.

Die Teile II und III geben dir die Sprache und die Materialgesetze, Teil IV macht aus dem Körper ein Netz, Teil V die Belastung eines Schrittes. In Teil VI schließt sich die Rückkopplung: aus der Spannung wird über den Mechanostaten ein Reiz, aus dem Reiz Knochenumbau, aus dem Umbau eine dichtere Stelle — der Enthesophyt. Am Ende steht die Frage des Titels, und zwar als Rechnung: Zug und Druck bauen an verschiedenen Orten auf, und einer der beiden trifft die Stelle, an der der Sporn wirklich sitzt.

Ein zweites Verzeichnis läuft nebenher: die Tabelle im Vorwort, die zu jedem anschaulichen Bild den Namen nennt, den es im Studium trägt — der Kraftpfeil heißt dort Vektor, das Netz aus Dreiecken Diskretisierung. Auch sie wächst am Ende jedes Teils um die Zeilen, die du dir gerade erarbeitet hast. Wenn dir eine Vorlesung später einen dieser Namen vorsetzt, hast du das Bild dazu schon.

1.9 Der offene Streit als Versprechen

Ein letzter Punkt, und er ist der schönste. An der Ferse ist die Wissenschaft nicht fertig. Ob der Sporn entsteht, weil die Faszie am Knochen zieht, oder weil wiederholter Druck von unten auf die Enthese wirkt, ist offen — anatomische Arbeiten fanden den Sporn gerade nicht in Zugrichtung der Faszie liegend. In Kapitel 18 wirst du beide Vermutungen als Reglerstellung durchrechnen und die berechneten Orte mit der Stelle vergleichen, an der der Sporn anatomisch sitzt. Du entscheidest den Streit nicht — aber du erlebst, wozu ein Modell taugt: an eine echte offene Frage heranzukommen, statt an eine längst gelöste.

Wie diese Antwort aussehen wird, sei hier schon verraten, denn sie ist das Ziel des ganzen Weges. Am Ende stehen zwei Bilder — eines für den Zugreiz, eines für den Druckreiz —, und in jedem baut das Modell an einer anderen Stelle des Fersenbeins Knochen auf: der Zug vorn unten, in der Spornregion; der Druck oben am Sprunggelenk. Abbildung 1.8 zeigt die beiden Orte. Sie liegen rund 17 Millimeter auseinander, bei einer Schwelle von rund 2 Millimetern, ab der man zwei berechnete Orte überhaupt unterscheiden darf — unverwechselbar also. Was die Literatur nicht trennen kann, trennt das Modell räumlich.

Ob es damit recht hat, ist eine ganz andere Frage. Sie ist unbequem, und Kapitel 18 weicht ihr nicht aus.

Code
# Kapitel 1 rechnet nichts — es zeigt, wohin die Reise geht. Kontur, beide
# Aufbau-Orte und der Sporn-Ort werden aus denselben Datenquellen gelesen, aus
# denen auch das Schlusskapitel sie nimmt; so können sie nicht auseinanderlaufen.
import json
import pathlib

import numpy as np
import matplotlib.pyplot as plt

umriss = np.array(json.loads(
    pathlib.Path("../geometrie/kalkaneus_kontur.json").read_text())["punkte"]) * 1000.0
paket = json.loads(
    pathlib.Path("programme/kap18/hypothesen_daten.json").read_text())
zug = paket["referenz"]["zug_mm"]
druck = paket["referenz"]["druck_mm"]
sporn = paket["parameter"]["sporn_ort_mm"]

fig, ax = plt.subplots(figsize=(7.0, 4.6))
ax.fill(umriss[:, 0], umriss[:, 1], color="#f0e2d0", ec="#a9825f", lw=1.6,
        zorder=1)

# Der echte Sporn zuerst, damit die berechneten Marken darüber liegen.
ax.scatter([sporn[0]], [sporn[1]], s=150, facecolor="none", edgecolor="#7a2b8a",
           lw=2.0, zorder=4)
ax.annotate("echter Sporn", xy=(sporn[0], sporn[1]), xytext=(38, -9),
            color="#7a2b8a", fontsize=10, zorder=5,
            arrowprops=dict(arrowstyle="->", color="#7a2b8a"))

# Die zwei Beschriftungen liegen ÜBER der Orientierungszeile (y = −13), damit
# ihre Fühurngslinien sie nicht durchschneiden.
for (x, y), farbe, name, versatz in (
        (zug, "#c0392b", "Zugreiz baut hier auf", (-33, -5)),
        (druck, "#1f4e9c", "Druckreiz baut hier auf", (-34, 34))):
    ax.scatter([x], [y], s=110, color=farbe, zorder=5)
    ax.annotate(name, xy=(x, y), xytext=versatz, color=farbe, fontsize=10,
                fontweight="bold", zorder=5,
                arrowprops=dict(arrowstyle="->", color=farbe, lw=1.4))

# Der Abstand als Doppelpfeil — er ist die Aussage des Bildes.
ax.annotate("", xy=(zug[0], zug[1]), xytext=(druck[0], druck[1]),
            arrowprops=dict(arrowstyle="<->", color="#444", lw=1.3,
                            linestyle=(0, (4, 3))), zorder=3)
ax.text(24.8, 14.5, "17 mm", fontsize=9, color="#444",
        ha="left", va="center",
        bbox=dict(facecolor="white", alpha=0.85, edgecolor="none", pad=1.5))

# Orientierungszeile unter den Beschriftungen, der Maßstab auf eigener Höhe
# darunter (Formregel für Felddarstellungen).
ax.text(-13, -13.0, "hinten (Ferse)", fontsize=9, color="#666")
ax.text(70, -13.0, "vorn (Zehen)", fontsize=9, color="#666", ha="right")
ax.annotate("oben", xy=(-9, 26), xytext=(-9, 12), fontsize=9, color="#444",
            ha="center", arrowprops=dict(arrowstyle="->", color="#444", lw=1.2))
ax.plot([46, 56], [-17.5, -17.5], color="#333", lw=2.2, solid_capstyle="butt")
ax.text(51, -20.6, "10 mm", ha="center", fontsize=9, color="#333")

ax.set_xlim(-16, 74)
ax.set_ylim(-22.5, 47)
ax.set_aspect("equal")
ax.axis("off")
plt.tight_layout()
plt.show()
Abbildung 1.8: Wohin das Buch führt: die zwei Orte, an denen das fertige Modell Knochen aufbaut — je nachdem, welche der beiden Hypothesen man rechnet. Rot der Zugreiz (Cluster-Zentrum bei 21,8/6,1 mm, in der Spornregion, dicht beim echten Sporn); blau der Druckreiz (18,3/23,0 mm, oben an der Gelenkfläche zum Sprungbein). Violett umkreist die Stelle der plantaren Enthese (24,1 mm vorn, 3,4 mm oben), an der der Sporn anatomisch sitzt. Die zwei berechneten Orte liegen 17,33 mm auseinander, die Unterscheidungsschwelle beträgt 2,06 mm — die Hypothesen sind räumlich unverwechselbar. Hier ist nichts gerechnet: Die Werte stammen aus der feineren Vergleichsrechnung außerhalb des Buches, hergeleitet werden sie im Schlusskapitel. Sagittalschnitt, hinten links, vorn rechts, oben ↑.

Übungen

Ü 1.1 (Verstehen). Ordne die fünf Bausteine der Fersen-Simulation den Dingen in der Szene zu: Was ist das Netz, was das Materialgesetz, was die Randbedingung, was das Gleichungssystem, was der Löser? Nenne für jeden Baustein ein Stück aus Abbildung 1.2.

Ü 1.2 (Verändern). Führe am Blackbox-Programm zwei Experimente durch. Schreibe vorher auf, was du erwartest, dann schiebe: (a) Stelle die Kilometer von 40 auf 90 — wächst der Sporn linear mit, oder anders? (b) Schalte bei 90 km das Fersenpolster ein — wie stark ändert sich die Sporn-Dichte? Notiere beide Beobachtungen und hebe sie auf. Die erste wirst du am Ende des Buches wiedererkennen, wenn Kapitel 18 dieselbe Frage mit dem vollen Modell rechnet. Die zweite bleibt offen: Was eine Einlage wirklich ändert, rechnet auch das Schlusskapitel nicht — schreibe deshalb dazu, was der Polster-Regler deiner Meinung nach annimmt, statt es auszurechnen.

Ü 1.3 (Übertragen). Beschreibe ein eigenes Belastungs-Beispiel aus dem Sport — ein schmerzendes Knie, ein gereiztes Schienbein — und zerlege es in dieselben fünf Bausteine. Welche Kräfte greifen an, wo wird gehalten, welche Form würdest du vernetzen?

Roter Faden

Wo kam das schon vor, wo kommt es wieder? Dieses Kapitel hat nichts gerechnet und alles versprochen. Kapitel 2 macht die drei Kräfte am eigenen Fuß greifbar und führt den Kraftpfeil ein. Jeder spätere Teil füllt einen Baustein der Landkarte aus Abbildung 1.7. Und in Kapitel 18 steht der Motorraum offen: dieselbe Frage wie hier, aber mit echter Umbau-Rückkopplung, auf der bildbasierten Kontur gerechnet — und mit einer Antwort, die du selbst nachprüfen kannst.

Was dieses Kapitel NICHT tut

Es lässt dich nichts nachrechnen: keine Formel außer der Leitfrage in Worten, keine Mathematik, kein sichtbarer Programmcode. Die Zahlen, die vorkommen, stammen aus der Szene und aus dem Zahlenanhang (Körpergewicht, Kilometer, Kräfte, Maße) — keine davon leitet dieses Kapitel her. Die Blackbox ist ein Vorführmodell: Sie zeigt die Bedienung, nicht die belastbaren Ergebnisse — die entstehen Baustein für Baustein in den folgenden Kapiteln. Sie sagt auch nicht, wann etwas wächst, und sie rechnet nicht, was eine Einlage tut. Und sie entscheidet nichts über die Ursache des Sporns: Der Streit zwischen Zug und Druck wird hier nur angekündigt, nicht geführt. Dies ist die Landkarte, noch nicht die Reise.