Tree Gen 1.46.1: Kronenzylinder mit p90 statt Maximum
Befund der Spielseite beim Umbau ihrer Frucht-Streuung, hier nachgemessen: seit
den Bueschel-Schalen streut der Kronenradius viel breiter.
Obstbaum S4 p50 1.35 p90 2.12 max 3.17
Eiche S4 p50 1.12 p90 1.69 max 2.37
Tanne S4 p50 1.17 p90 2.49 max 3.91
Das Maximum haengt an EINER weit aussen sitzenden Card. Die Deckungs-Zahl faellt
damit 2.3-mal pessimistischer aus (Obstbaum 1.2 statt 2.8 m2/m3) - und weil das
Verhaeltnis max/p90 je Art verschieden ist (Tanne 1.57, Eiche 1.40), verzerrt es
auch den VERGLEICH gegen die Eiche, den dieser Test fuehrt.
Das Breitenprofil rechnete seit 1.41 mit p90; der Kronenzylinder der
Deckungs-Messung war die Stelle, die ich damals uebersehen habe. Jetzt beide
gleich.
Der Kronenradius fuer die Frucht-Bedingung (>= 1.80 m) bleibt bewusst das
Maximum ueber die RINDE: Bark ist von den Schalen nicht betroffen, die Zahl
bedeutet dort unveraendert dasselbe.
Nur Messung, keine Geometrie-Aenderung - die Deckungswerte verschieben sich von
2.6-4.5 auf 3.5-5.5 m2/m3, das Verhaeltnis zur Eiche von 104-179 % auf
86-136 %. Alle Schranken halten.
27 Tests bestehen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+12
-2
@@ -115,7 +115,15 @@ def deckung_messen(preset, seed):
|
||||
# removed") - die Kugel-Rechnung stand zuerst danach.
|
||||
pts = [v.co.copy() for v in m.vertices]
|
||||
ev.to_mesh_clear()
|
||||
lr = max(math.hypot(x, y) for x, y, _z in mitten)
|
||||
# 90. PERZENTIL statt Maximum, wie beim Breitenprofil. Von der Spielseite
|
||||
# gemeldet und hier nachgemessen: seit den Bueschel-Schalen streut der
|
||||
# Kronenradius viel breiter (Obstbaum p50 1.35 / p90 2.12 / max 3.17), und
|
||||
# das Maximum haengt an einer einzelnen weit aussen sitzenden Card. Mit max
|
||||
# faellt die Deckung 2.3-mal pessimistischer aus - und weil das Verhaeltnis
|
||||
# max/p90 je Art verschieden ist (Tanne 1.57, Eiche 1.40), verzerrt es auch
|
||||
# den VERGLEICH gegen die Eiche, den dieser Test fuehrt.
|
||||
lr = sorted(math.hypot(x, y) for x, y, _z in mitten)
|
||||
lr = lr[min(len(lr) - 1, int(0.9 * (len(lr) - 1)))]
|
||||
lz = [z for _x, _y, z in mitten]
|
||||
vol = math.pi * lr ** 2 * (max(lz) - min(lz))
|
||||
# Kugel-Kennwert mit DERSELBEN Formel wie unten: Kronenhoehe geteilt durch
|
||||
@@ -205,7 +213,9 @@ for seed in SEEDS:
|
||||
sum(p.z for p in pts) / len(pts)))
|
||||
ev.to_mesh_clear()
|
||||
if mitten:
|
||||
lr = max(math.hypot(x, y) for x, y, _z in mitten)
|
||||
# p90 wie oben - dieselbe Formel wie beim Massstab Eiche.
|
||||
lr = sorted(math.hypot(x, y) for x, y, _z in mitten)
|
||||
lr = lr[min(len(lr) - 1, int(0.9 * (len(lr) - 1)))]
|
||||
lz = [z for _x, _y, z in mitten]
|
||||
kron_zyl = math.pi * lr ** 2 * (max(lz) - min(lz))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user