fix(extract): Zebrabalken mittig verteilt, Kantenbreite gerundet
Befund 8, zwei kleine, aber datenwirksame Funde: - Zebrastreifen: Der Startversatz (-halb + BAR/2, Takt 2*BAR) liess die Balkenreihe an einem Fahrbahnrand bündig sitzen und am gegenüber- liegenden bis zu eine Taktbreite frei (0,6 m bei Hauptstraße/Boulevard, 0,4 m bei Wohnstraße), statt der laut Entwurf verlangten Aufteilung "Balken 60 cm, Lücke 60 cm" über die ganze Breite. n = floor((2*halb + BAR) / (2*BAR)) Balken, symmetrisch bei -(n-1)*BAR gestartet, lassen an beiden Rändern denselben Rest frei (nachgemessen: 0,3 m statt 0/0,6 m bei Hauptstraße, 0,2 m statt 0/0,4 m bei Wohnstraße), ohne die Balkenzahl je Arm zu ändern. - edges[].breite (Median aus der Distanztransformation) kam ungerundet an (Werte wie 31.622776601683793), während jede andere Zahl in der Ausgabe auf 2 Stellen gerundet ist. fahrbahn bleibt unverändert, weil es schon eine der vier festen SECTION-Konstanten ist. Zwei Tests, beide ohne die jeweilige Korrektur rot: die Zebrabalken einer Kreuzungszufahrt lassen ungleiche Ränder (0,0/0,6 m statt 0,3/0,3 m), und eine krumme Kantenbreite blieb ungerundet in der Ausgabe.
This commit is contained in:
1 parent
2605f95951
commit
ca01141c5b
4 files changed
+51
-5
No files matched your search
@@ -11,6 +11,8 @@ unterbringen, und aus der Nähe bleibt Geometrie scharf, wo eine Textur verwisch
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import math
|
||||
|
||||
from shapely.geometry import LineString, Polygon
|
||||
from shapely.ops import substring
|
||||
|
||||
@@ -157,9 +159,15 @@ def junction_marks(graph: Graph, node: int) -> list[tuple[Polygon, str]]:
|
||||
# Haltelinie brauchen unterschiedlich viel Platz, deshalb getrennt geprüft statt
|
||||
# gemeinsam verworfen.
|
||||
if länge >= reach + CROSSWALK_DEPTH:
|
||||
# Balken längs der Fahrtrichtung, quer über die Fahrbahn verteilt.
|
||||
offset = -halb + BAR / 2
|
||||
while offset <= halb - BAR / 2 + 1e-9:
|
||||
# Balken längs der Fahrtrichtung, mittig über die Fahrbahn verteilt (Befund 8 der
|
||||
# Fixwelle): Der alte Startversatz (-halb + BAR/2, im Takt 2*BAR) saß am einen
|
||||
# Rand bündig und ließ am anderen bis zu eine Taktbreite frei - 0,6 m bei Haupt-
|
||||
# straße/Boulevard, 0,4 m bei Wohnstraße, statt der verlangten 60/60-cm-Teilung
|
||||
# über die ganze Breite. n Balken im selben Takt, symmetrisch um die Fahrbahnmitte
|
||||
# gestartet, lassen an beiden Rändern denselben Rest frei.
|
||||
n = math.floor((2 * halb + BAR) / (2 * BAR))
|
||||
offset = -(n - 1) * BAR
|
||||
for _ in range(n):
|
||||
mitte = (origin[0] + across[0] * offset, origin[1] + across[1] * offset)
|
||||
out.append((_rect(mitte, along, across, reach, CROSSWALK_DEPTH, BAR), "zebra"))
|
||||
offset += 2 * BAR
|
||||
|
||||
Reference in new issue
Block a user