weisse Kugeln
This commit is contained in:
@@ -73,8 +73,9 @@
|
||||
<div class="legend">
|
||||
<span><span class="dot" style="background:#22c55e"></span>Erkannt</span>
|
||||
<span><span class="dot" style="background:#ef4444"></span>Nicht erkannt</span>
|
||||
<span><span class="dot circle" style="background:#3b82f6"></span>Erkannt, nur 2D</span>
|
||||
<span><span class="dot circle" style="background:#fde68a"></span>Erkannt (nur 2D)</span>
|
||||
<span><span class="dot circle" style="background:#fbbf24"></span>Gemessen (3b)</span>
|
||||
<span><span class="dot circle" style="background:#3b82f6"></span>Fremd (3b)</span>
|
||||
<span><span class="dot" style="background:#9b7bff"></span>Kamera</span>
|
||||
</div>
|
||||
<span id="stats"></span>
|
||||
@@ -249,6 +250,7 @@ function buildScene(data) {
|
||||
|
||||
// ── Gemessene Positionen von 3b (gelbe Punkte) ──
|
||||
let nTriangulated = 0;
|
||||
let nUnknown = 0; // triangulierte Marker ohne Board-Eintrag
|
||||
const measuredById = {};
|
||||
|
||||
if (measuredMarkers?.markers?.length > 0) {
|
||||
@@ -275,6 +277,17 @@ function buildScene(data) {
|
||||
}
|
||||
}
|
||||
|
||||
// ── Blaue Kugeln: triangulierte Marker, die NICHT in boardMarkers stehen ──
|
||||
// (unbekannte IDs oder andere Links – keine Modellposition vorhanden)
|
||||
const unknownTriangulated = measuredMarkers.markers.filter(m =>
|
||||
!boardMarkers.some(bm => bm.id === m.marker_id)
|
||||
);
|
||||
for (const m of unknownTriangulated) {
|
||||
nUnknown++;
|
||||
const mpos = r2vArr(m.position_mm);
|
||||
gMeasured.add(makeSphere(mpos, 0.0055, 0x3b82f6));
|
||||
}
|
||||
|
||||
// Kamera-Frusta aus 3b
|
||||
if (measuredMarkers.cameras?.length > 0) {
|
||||
for (const c of measuredMarkers.cameras) {
|
||||
@@ -288,14 +301,14 @@ function buildScene(data) {
|
||||
}
|
||||
}
|
||||
|
||||
// ── Blaue Kugeln: Board-Marker erkannt, aber nicht trianguliert ──
|
||||
// ── Helle Kugeln: Board-Marker erkannt, aber nicht trianguliert ──
|
||||
// (nur 1 Kamera sah den Marker, oder 3b lief nicht)
|
||||
let nDetectedNotTriangulated = 0;
|
||||
for (const m of boardMarkers) {
|
||||
if (detectedIds.has(m.id) && !Object.hasOwn(measuredById, m.id)) {
|
||||
nDetectedNotTriangulated++;
|
||||
const pos = r2vArr(m.position);
|
||||
gMeasured.add(makeSphere(pos, 0.0055, 0x3b82f6));
|
||||
gMeasured.add(makeSphere(pos, 0.0055, 0xfde68a));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,12 +336,11 @@ function buildScene(data) {
|
||||
const triInfo = measuredMarkers === null
|
||||
? ' │ 3b: –'
|
||||
: ` │ 3b: ${nTriangulated}`;
|
||||
const only2dInfo = nDetectedNotTriangulated > 0
|
||||
? ` │ nur 2D: ${nDetectedNotTriangulated}`
|
||||
: '';
|
||||
const only2dInfo = nDetectedNotTriangulated > 0 ? ` │ nur 2D: ${nDetectedNotTriangulated}` : '';
|
||||
const unknownInfo = nUnknown > 0 ? ` │ fremd: ${nUnknown}` : '';
|
||||
|
||||
document.getElementById('stats').textContent =
|
||||
`Erkannt ${nDetected}/${boardMarkers.length}${triInfo}${only2dInfo}` +
|
||||
`Erkannt ${nDetected}/${boardMarkers.length}${triInfo}${only2dInfo}${unknownInfo}` +
|
||||
(camInfo ? ` │ RMS: ${camInfo}` : '');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user