From ba1572b11c1efc242d192358c43e9f41e895525f Mon Sep 17 00:00:00 2001 From: zeefaad Date: Sun, 28 Dec 2025 14:15:12 +0100 Subject: [PATCH] inclinaison Y de M1 --- main.c | 74 ++++++++++----------------------------------------- michelson | Bin 129664 -> 129664 bytes michelson.fs | 3 ++- 3 files changed, 16 insertions(+), 61 deletions(-) diff --git a/main.c b/main.c index 9adb634..ad907ad 100644 --- a/main.c +++ b/main.c @@ -15,6 +15,7 @@ typedef struct { float d2; float lambda; float angleM1; + float angleM1_Y; Vector2 center; bool gaz; float nGaz; @@ -49,65 +50,6 @@ bool GuiButtonRepeat(Rectangle bounds, const char* text, bool shouldRepeat) { return clicked || held; } -/* -void DrawInterferenceViewCPU(Michelson *mic, Rectangle rec) { - DrawRectangleRec((Rectangle){rec.x - 4, rec.y - 30, rec.width + 8, rec.height + 34}, COLOR_PANEL); - DrawText("ECRAN", rec.x, rec.y - 26, 20, COLOR_TEXT_DIM); - - DrawRectangleRec(rec, BLACK); - DrawRectangleLinesEx(rec, 1, Fade(COLOR_ACCENT, 0.3f)); - - Color baseColor = WavelengthToColor(mic->lambda); - - float extraPath = 0.0f; - if (mic->gaz) - extraPath = 2.0f * 100.0f * (mic->nGaz - 1.0f); - - float d2_effective = mic->d2 + (extraPath / 2.0f); - - // Diff de marche du à l'axe (2 * e) + micro -> nano - float deltaLnm = 2.0f * (mic->d1 - d2_effective) * 1000.0f; - - int cx = rec.x + rec.width / 2; - int cy = rec.y + rec.height / 2; - - float K = PI / mic->lambda; - - // Dessin pixel par pixel lent... => faire avec gpu - for (int y = rec.y; y < rec.y + rec.height; y++) { - for (int x = rec.x; x < rec.x + rec.width; x++) { - float relX = (float)(x - cx); - float relY = (float)(y - cy); - float radiusSq = relX * relX + relY * relY; - - //if (radiusSq > (rec.width / 2.0f - 5) * (rec.width / 2.0f - 5)) continue; - - // Diff de marche lamme d'air 2 * e cos(i) mais petits angles => cos(i) ~ 1 - i^2/2 mais i ~ r/f et r^2 = x^2 + y^2 - float ringFactor = radiusSq * 0.065f; - // Diff de marche dut au coin d'air - float wDelta = relX * mic->angleM1 * 200.0f; - - float currDelta = deltaLnm - ringFactor + wDelta; - - // Formule de Fresnel : I = I_0 * cos^2(phi) - float phase = currDelta * K; - float intensity = cosf(phase); - intensity = intensity * intensity; - - Color pixColor = {(unsigned char)(baseColor.r * intensity), (unsigned char)(baseColor.g * intensity), (unsigned char)(baseColor.b * intensity), 255 }; - - DrawPixel(x, y, pixColor); - } - } - - DrawRectangleLinesEx(rec, 2, COLOR_PANEL); - - // croix centre - DrawLine(cx - 10, cy, cx + 10, cy, Fade(WHITE, 0.5f)); - DrawLine(cx, cy - 10, cx, cy + 10, Fade(WHITE, 0.5f)); -} -*/ - void DrawInterferenceViewGPU(Michelson *mic, Rectangle rec, Shader shader, bool *isFullscreen) { DrawRectangleRec((Rectangle){rec.x - 4, rec.y - 30, rec.width + 8, rec.height + 34}, COLOR_PANEL); @@ -141,6 +83,7 @@ void DrawInterferenceViewGPU(Michelson *mic, Rectangle rec, Shader shader, bool SetShaderValue(shader, GetShaderLocation(shader, "d2"), &d2_effective, SHADER_UNIFORM_FLOAT); SetShaderValue(shader, GetShaderLocation(shader, "lambda"), &mic->lambda, SHADER_UNIFORM_FLOAT); SetShaderValue(shader, GetShaderLocation(shader, "angleM1"), &mic->angleM1, SHADER_UNIFORM_FLOAT); + SetShaderValue(shader, GetShaderLocation(shader, "angleM1_Y"), &mic->angleM1_Y, SHADER_UNIFORM_FLOAT); SetShaderValue(shader, GetShaderLocation(shader, "zoom"), &zoom, SHADER_UNIFORM_FLOAT); // GPU @@ -292,7 +235,7 @@ void DrawControlPanel(Michelson *mic) { if (GuiButton((Rectangle){startX + contentWidth - 60, startY + 30, 60, 25}, "Egal")) mic->d1 = mic->d2; - // Angle M1 + // Angle M1 X startY += 90; DrawText(TextFormat("Inclinaison M1: %.3f deg", mic->angleM1), startX, startY, 20, ORANGE); float stepAngle = speedMode ? 0.05f : 0.001f; @@ -301,6 +244,14 @@ void DrawControlPanel(Michelson *mic) { if (GuiButtonRepeat((Rectangle){startX + btnSize + sliderWidth - 65, startY + 30, btnSize, 25}, "+", shouldRepeat)) mic->angleM1 += stepAngle; if (GuiButton((Rectangle){startX + contentWidth - 60, startY + 30, 60, 25}, "Zero")) mic->angleM1 = 0.0f; + // Angles M1 Y + startY += 90; + DrawText(TextFormat("Inclinaison Y: %.3f deg", mic->angleM1_Y), startX, startY, 20, ORANGE); + if (GuiButtonRepeat((Rectangle){startX, startY + 30, btnSize, 25}, "-", shouldRepeat)) mic->angleM1_Y -= stepAngle; + GuiSlider((Rectangle){startX + btnSize + 5, startY + 30, sliderWidth - 75, 25}, 0, 0, &mic->angleM1_Y, -1.0f, 1.0f); + if (GuiButtonRepeat((Rectangle){startX + btnSize + sliderWidth - 65, startY + 30, btnSize, 25}, "+", shouldRepeat)) mic->angleM1_Y += stepAngle; + if (GuiButton((Rectangle){startX + contentWidth - 60, startY + 30, 60, 25}, "Zero")) mic->angleM1_Y = 0.0f; + // Status startY += 70; bool isLameAir = (fabs(mic->angleM1) < 0.001f); @@ -359,6 +310,9 @@ int main () { mic.d2 = 250.0f; mic.lambda = 550.0f; mic.angleM1 = 0.0f; + mic.angleM1_Y = 0.0f; + mic.nGaz = 1.0f; + mic.gaz = false; bool isFullscreen = false; diff --git a/michelson b/michelson index 1d80071366acb324399fae54cb025344ab80f5da..e5eec2b540916a23b0fc917bfc0424a0b709317d 100755 GIT binary patch delta 10285 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 F{68nDAgcfX delta 9350 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 LrM&DB)Cm6vW-@8< diff --git a/michelson.fs b/michelson.fs index e10b4e6..a514568 100644 --- a/michelson.fs +++ b/michelson.fs @@ -13,6 +13,7 @@ uniform float d1; uniform float d2; uniform float lambda; uniform float angleM1; +uniform float angleM1_Y; uniform float zoom; const float PI = 3.14159265359; @@ -53,7 +54,7 @@ void main() { float ringFactor = radiusSq * 0.065; // Diff de marche du au coin d'air - float wDelta = relX * angleM1 * 200.0; + float wDelta = (relX * angleM1 + relY * angleM1_Y) * 200.0f; float currDelta = deltaLnm - ringFactor + wDelta;