Krater am Terminator verbessert

This commit is contained in:
2026-04-07 09:17:56 +02:00
parent 071eab9a1c
commit de3f965c71
+6 -4
View File
@@ -1261,7 +1261,7 @@ function projectCraterWithScene(crater, state, renderWidth, renderHeight) {
} }
const sunDirection = state.sunLight.position.clone().sub(worldPoint).normalize(); const sunDirection = state.sunLight.position.clone().sub(worldPoint).normalize();
const terminatorDistance = Math.abs(normalWorld.dot(sunDirection)); const terminatorDistance = normalWorld.dot(sunDirection);
return { return {
x: (ndc.x * 0.5 + 0.5) * renderWidth, x: (ndc.x * 0.5 + 0.5) * renderWidth,
@@ -1361,7 +1361,9 @@ function renderMoonCraterOverlay(phaseData, libration) {
distanceToTerminator = Math.abs(absoluteX - terminatorX); distanceToTerminator = Math.abs(absoluteX - terminatorX);
} }
if (craterDisplayMode === 'terminator' && distanceToTerminator > (state ? 0.12 : Math.max(8, radius * 0.03))) { if (craterDisplayMode === 'terminator' && (state
? (distanceToTerminator < -1.05 || distanceToTerminator > -0.00)
: Math.abs(distanceToTerminator) > Math.max(8, radius * 0.03))) {
continue; continue;
} }
@@ -1374,7 +1376,7 @@ function renderMoonCraterOverlay(phaseData, libration) {
} }
if (craterDisplayMode === 'terminator') { if (craterDisplayMode === 'terminator') {
visibleCraters.sort((a, b) => a.distanceToTerminator - b.distanceToTerminator); visibleCraters.sort((a, b) => Math.abs(a.distanceToTerminator) - Math.abs(b.distanceToTerminator));
} else { } else {
visibleCraters.sort((a, b) => Number(b.crater.diameterKm || 0) - Number(a.crater.diameterKm || 0)); visibleCraters.sort((a, b) => Number(b.crater.diameterKm || 0) - Number(a.crater.diameterKm || 0));
} }
@@ -1510,7 +1512,7 @@ function updateMoonDrag(event) {
if (freeCameraMode) { if (freeCameraMode) {
const sensitivity = 3.0 / size; const sensitivity = 3.0 / size;
cameraOrbitTheta = moonDragStartOrbitTheta + (event.clientX - moonDragStartX) * sensitivity; cameraOrbitTheta = moonDragStartOrbitTheta - (event.clientX - moonDragStartX) * sensitivity;
cameraOrbitPhi = THREE.MathUtils.clamp( cameraOrbitPhi = THREE.MathUtils.clamp(
moonDragStartOrbitPhi - (event.clientY - moonDragStartY) * sensitivity, moonDragStartOrbitPhi - (event.clientY - moonDragStartY) * sensitivity,
0.05, 0.05,