From d87450a4b8c129e51f49ef578c25c74eb6f76d1e Mon Sep 17 00:00:00 2001 From: D4rkst3r Date: Thu, 6 Aug 2026 14:42:07 +0200 Subject: [PATCH] Obstbaum: B/H-Band gilt fuer dieses Preset nicht mehr (Regel festgehalten) Nur Doku und Test-Kommentare, keine Geometrie-Aenderung - deshalb kein Versionssprung. Die Spielseite hat den Dauerkonflikt aufgeloest: Kronenradius >= 1.80 schlaegt B/H <= 0.75. Zweimal war die Abwaegung dieselbe (Kronenradius traegt die Frucht-Streuung), beim zweiten Mal wurde daraus eine Regel statt einer Einzelfallentscheidung. Die gemessenen 0.77-0.82 sind der Preis der Frucht-Tragflaeche. Sachlich richtig ist das auch deshalb, weil B/H die Form gar nicht absichert: es haette sowohl den Trichter (oben/mitte 1.07) als auch die Pilzform (unten/mitte 1.17) durchgelassen. Das Breitenprofil trennt beide sauber. Festgehalten in test_obstbaum.py (Kopf + Kommentarblock), im Preset selbst und in der README - damit die Abwaegung nicht ein drittes Mal von vorn gefuehrt wird. Im Preset stehen jetzt die Neun-Seed-Werte statt der alten Drei-Seed-Zahlen. Co-Authored-By: Claude Opus 4.8 --- README.md | 14 ++++++++++---- stylized_tree_generator.py | 11 +++++++++-- tests/test_obstbaum.py | 27 +++++++++++++++++++-------- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 3bd646e..2e6775a 100644 --- a/README.md +++ b/README.md @@ -697,10 +697,16 @@ Zwei Fallen beim Einregeln, beide gemessen statt vermutet: gemessen 29 %, nicht 37 %. `tests/test_obstbaum.py` prueft die funktionale Bedingung ueber alle neun Seeds. -B/H wird BEWUSST nicht hart geprueft: die Vorgaben B/H 0.55-0.75 und -Kronenradius >= 1.80 m bei 4-5 m Hoehe lassen zusammen nur ein 4 % breites -Fenster zu, waehrend die Streuung von Seed zu Seed rund 12 % betraegt. Vorrang -hat der Kronenradius, weil an ihm die Fruechte haengen. + +**B/H gilt fuer dieses Preset nicht** (Entscheidung der Spielseite, +2026-08-06). Das urspruengliche Band 0.55-0.75 und Kronenradius >= 1.80 m bei +4-5 m Hoehe lassen zusammen nur ein 4 % breites Fenster zu, waehrend die +Streuung von Seed zu Seed rund 12 % betraegt. Zweimal ist die Abwaegung +zugunsten des Kronenradius ausgefallen - beim zweiten Mal wurde daraus eine +Regel: **Kronenradius >= 1.80 schlaegt B/H <= 0.75**, die gemessenen 0.77-0.82 +sind der Preis der Frucht-Tragflaeche. Die Form sichert ohnehin das +BREITENPROFIL ab, und das trennt schaerfer: B/H haette sowohl den Trichter +(oben/mitte 1.07) als auch die Pilzform (unten/mitte 1.17) durchgelassen. ### Card-Groesse misst sich an der Baumhoehe diff --git a/stylized_tree_generator.py b/stylized_tree_generator.py index 66ac683..f2fd008 100644 --- a/stylized_tree_generator.py +++ b/stylized_tree_generator.py @@ -187,8 +187,15 @@ PRESETS = { # die Krone selbst ist 3-4 m hoch. 1.8 m Ansatz plus 3 m Krone sind 4.8 m # Gesamthoehe und ein Ansatz bei knapp 40 % - genau das Band der Spielseite. # - # Gemessen ueber drei Seeds: H 4.96 m, B 3.66 m, B/H 0.74, Ansatz 39 %, - # Kronenradius 1.83 m, 1316 Tris. Alle vier Vorgaben erfuellt. + # Gemessen ueber alle neun Produktions-Seeds: H 4.90 m, Kronenradius + # 1.88-2.01 m, Kronenansatz 39 %, Breitenprofil oben/mitte 0.63-0.84, + # Deckung 100-134 % der Eiche, 3752-4166 Tris. + # + # Fuer dieses Preset gilt B/H NICHT (Entscheidung der Spielseite, + # 2026-08-06): Kronenradius >= 1.80 schlaegt B/H <= 0.75, weil an der + # Kronen-Aussenhaut die Frucht-Streuung haengt. Gemessen 0.77-0.82. Die Form + # sichert das BREITENPROFIL ab, das schaerfer trennt - B/H haette sowohl den + # Trichter als auch die Pilzform durchgelassen. Siehe tests/test_obstbaum.py. # # FALLE beim Einregeln: "Height" ist die STAMMlaenge, nicht die Baumhoehe. # Die Aeste ragen darueber hinaus - mit Height 4.8 kam der Baum auf 5.4-6.2 m. diff --git a/tests/test_obstbaum.py b/tests/test_obstbaum.py index e970e10..1ab224b 100644 --- a/tests/test_obstbaum.py +++ b/tests/test_obstbaum.py @@ -10,8 +10,10 @@ Deshalb ist das hier KEIN Silhouetten-Test mit Geschmacksurteil, sondern eine funktionale Bedingung: Kronenradius > Card-Groesse. Vorgaben der Spielseite, die mitgeprueft werden: - Kronenansatz 35-40 %, Kronenradius S4 >= 1.8 m, Hoehe 4-5 m. -B/H ist bewusst NICHT hart geprueft - siehe Kommentar unten. + Kronenansatz 35-40 %, Kronenradius S4 >= 1.8 m, Hoehe 4-5 m, + Breitenprofil (die Krone muss sich nach oben schliessen), + Deckung gegen die Eiche. +B/H gilt fuer dieses Preset NICHT - siehe Kommentar unten. Aufruf: blender --background --factory-startup --python tests/test_obstbaum.py """ @@ -262,13 +264,22 @@ for seed in SEEDS: fails.append("Seed %d: Kronenansatz %.0f %%, Vorgabe 35-40 %% " "(33-45 als Toleranz)" % (seed, ansatz)) -# B/H wird BEWUSST nicht hart geprueft. +# B/H gilt fuer dieses Preset NICHT MEHR - Entscheidung der Spielseite, +# 2026-08-06. Es wird nur noch mitgedruckt. # -# Die Spielseite nennt 0.55-0.75 UND Kronenradius >= 1.80 m bei 4-5 m Hoehe. -# Beides zusammen laesst bei H = 5.0 nur B zwischen 3.60 und 3.75 zu - ein -# Fenster von 4 %, waehrend die Streuung von Seed zu Seed rund 12 % betraegt. -# Die Vorgaben sind also nur im Mittel gleichzeitig erfuellbar. Vorrang hat die -# funktionale (Kronenradius), weil an ihr die Frucht-Streuung haengt. +# Vorgeschichte: das urspruengliche Band war 0.55-0.75, zusammen mit +# Kronenradius >= 1.80 m bei 4-5 m Hoehe. Beides zusammen laesst bei H = 5.0 nur +# B zwischen 3.60 und 3.75 zu - ein Fenster von 4 %, waehrend die Streuung von +# Seed zu Seed rund 12 % betraegt. Zweimal ist die Abwaegung deshalb zugunsten +# des Kronenradius ausgefallen (er traegt die Frucht-Streuung); beim zweiten Mal +# hat die Spielseite daraus eine Regel gemacht: +# +# Kronenradius >= 1.80 schlaegt B/H <= 0.75. +# Die gemessenen 0.77-0.82 sind der Preis der Frucht-Tragflaeche. +# +# Die Form sichert ohnehin das BREITENPROFIL schaerfer ab, als B/H es je +# konnte: B/H haette sowohl den Trichter (oben/mitte 1.07) als auch die +# Pilzform (unten/mitte 1.17) durchgelassen. print("") print("Kronenradius/Card ueber alle Seeds: %.2f - %.2f" % (min(verh), max(verh))) print("Krone oben/mitte ueber alle Seeds: %.2f - %.2f (Eiche 0.90, "