WeightSlice.InsertPoint
| Eigenschaft |
Wert |
| Modul |
Trajectory |
| Klasse |
PerfGrid (innere Klasse von Perf1Engine) |
| Typ |
Sub |
| Sichtbarkeit |
Public |
| Datei |
Trajectory/Perf1Engine.vb |
Beschreibung
Fügt einen IAS/ALT/Data-Datenpunkt in die 2D-Gitterseite ein und erhält dabei die sortierte Reihenfolge der Zeilen (IAS aufsteigend) und Spalten (ALT aufsteigend). Falls die IAS- oder ALT-Achse den Wert noch nicht enthält, wird eine neue Zeile bzw. Spalte an der richtigen sortierten Position eingefügt und das interne Daten-Array entsprechend vergrößert. Entspricht der VB6-Logik von Set_Grid_Point für eine bestehende Gewichtsseite.
Signatur
Public Sub InsertPoint(ias As Double, alt As Double, data As Double)
Parameter
| Name |
Typ |
Beschreibung |
Standard |
| ias |
Double |
Indicated Airspeed in Knoten — wird als Zeilenindex im Gitter verwendet |
— |
| alt |
Double |
Höhe in Fuß — wird als Spaltenindex im Gitter verwendet |
— |
| data |
Double |
Performance-Wert (VS in ft/min oder FF in kg/h) für diesen IAS/ALT-Schnittpunkt |
— |
Ablaufdiagramm
flowchart TD
A[Start InsertPoint] --> B[FindOrInsertRow: IAS-Zeile suchen/einfügen]
B --> C{IAS bereits vorhanden?}
C -- Ja --> D[rowIdx = bestehender Index]
C -- Nein --> E[Einfügeposition finden, sortiert aufsteigend]
E --> F[IasRows.Insert an Position]
F --> G[InsertDataRow: neues Array mit zusätzlicher Zeile erzeugen]
G --> D
D --> H[FindOrInsertCol: ALT-Spalte suchen/einfügen]
H --> I{ALT bereits vorhanden?}
I -- Ja --> J[colIdx = bestehender Index]
I -- Nein --> K[Einfügeposition finden, sortiert aufsteigend]
K --> L[AltCols.Insert an Position]
L --> M[InsertDataCol: neues Array mit zusätzlicher Spalte erzeugen]
M --> J
J --> N[EnsureCapacity prüfen/erweitern]
N --> O["Values(rowIdx, colIdx) = data"]
O --> P[Ende]
Aufgerufen von
| Modul |
Sub/Function |
Kontext |
| Trajectory/Perf1Engine |
InsertGridPoint |
Delegiert das Einfügen eines entschlüsselten PERF-Datenpunkts an die passende Gewichtsseite |
| Tests/Perf1EngineTests |
Diverse Testmethoden |
Direkte Unit-Tests mit bekannten IAS/ALT/Data-Kombinationen |
Ruft auf
| Modul |
Sub/Function |
Kontext |
| PerfGrid |
FindOrInsertRow |
Findet oder erstellt die IAS-Zeile (sortiert aufsteigend) |
| PerfGrid |
FindOrInsertCol |
Findet oder erstellt die ALT-Spalte (sortiert aufsteigend) |
| PerfGrid |
EnsureCapacity |
Stellt sicher, dass das Values-Array groß genug ist |
| PerfGrid |
InsertDataRow |
Erzeugt neues Array mit eingefügter Zeile (MISSING-Sentinel für neue Zellen) |
| PerfGrid |
InsertDataCol |
Erzeugt neues Array mit eingefügter Spalte (MISSING-Sentinel für neue Zellen) |
Beispiel
' Neue Gewichtsseite für 55000 kg erzeugen
Dim page As New Perf1Engine.PerfGrid(55000.0)
' Drei VS-CLB Datenpunkte einfügen (IAS kt, ALT ft, VS ft/min)
page.InsertPoint(270, 20000, 1606)
page.InsertPoint(340, 20000, 601)
page.InsertPoint(270, 35000, 328)
' IasRows enthält jetzt: {270, 340} (sortiert)
' AltCols enthält jetzt: {20000, 35000} (sortiert)
' Values(0, 0) = 1606 (270 kt / 20000 ft)
' Values(1, 0) = 601 (340 kt / 20000 ft)
' Values(0, 1) = 328 (270 kt / 35000 ft)
Änderungshistorie
| Version |
Datum |
Änderung |
| 1.0 |
2026-04-16 |
Erstdokumentation |