Compare commits
2 Commits
e78af26734
...
1b45c515d4
| Author | SHA1 | Date | |
|---|---|---|---|
| 1b45c515d4 | |||
| ebd2ba2e51 |
@ -47,27 +47,23 @@ void main() {
|
||||
float relX = (pixelX - center.x) * zoom;
|
||||
float relY = (pixelY - center.y) * zoom;
|
||||
|
||||
|
||||
// r^2
|
||||
float radiusSq = relX * relX + relY * relY;
|
||||
|
||||
// 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 ringFactorBase = radiusSq * 0.065;
|
||||
|
||||
// Diff de marche du au coin d'air
|
||||
float wDelta = (relX * angleM1 + relY * angleM1_Y) * 200.0;
|
||||
|
||||
float currDeltaBase = deltaLnm + wDelta;
|
||||
float cosFactor = 1.0 - (radiusSq * 0.000004);
|
||||
|
||||
float currDelta = deltaLnm - ringFactorBase + wDelta;
|
||||
float currDelta = (deltaLnm * cosFactor) + wDelta;
|
||||
|
||||
vec3 accumColor = vec3(0.0);
|
||||
|
||||
for(int i = 0; i < 10; i++) {
|
||||
if (i >= lambdasCount) break;
|
||||
if (i >= lambdasCount) break;
|
||||
float l = lambdas[i];
|
||||
if (l < 1.0) l = 550.0;
|
||||
vec3 baseColorVec = WavelengthToRGB(l);
|
||||
float currDelta = currDeltaBase - ringFactorBase;
|
||||
float K = PI / l;
|
||||
float phase = currDelta * K;
|
||||
float intensity = cos(phase);
|
||||
|
||||
@ -45,9 +45,12 @@ void main() {
|
||||
float relY = (pixelY - center.y) * zoom;
|
||||
|
||||
float radiusSq = relX * relX + relY * relY;
|
||||
float ringFactorBase = radiusSq * 0.065;
|
||||
|
||||
float wDelta = (relX * angleM1 + relY * angleM1_Y) * 200.0;
|
||||
float currDeltaBase = deltaLnm + wDelta;
|
||||
|
||||
float cosFactor = 1.0 - (radiusSq * 0.000004);
|
||||
|
||||
float currDelta = (deltaLnm * cosFactor) + wDelta;
|
||||
|
||||
vec3 accumColor = vec3(0.0);
|
||||
|
||||
@ -55,15 +58,16 @@ void main() {
|
||||
if (i >= lambdasCount) break;
|
||||
|
||||
float l = lambdas[i];
|
||||
|
||||
if (l < 1.0) l = 550.0;
|
||||
|
||||
vec3 baseColorVec = WavelengthToRGB(l);
|
||||
float currDelta = currDeltaBase - ringFactorBase;
|
||||
|
||||
float K = PI / l;
|
||||
float phase = currDelta * K;
|
||||
|
||||
float intensity = cos(phase);
|
||||
intensity = intensity * intensity;
|
||||
intensity = intensity * intensity;
|
||||
|
||||
accumColor += baseColorVec * intensity;
|
||||
}
|
||||
|
||||
|
||||
16
main.c
16
main.c
@ -377,20 +377,24 @@ void DrawControlPanel(Michelson *mic) {
|
||||
int rows = (mic->lambdasCount + cols - 1) / cols;
|
||||
startY += (rows * (btnH + 5)) + 20;
|
||||
|
||||
|
||||
// Pos M1
|
||||
// Pos M1 M2 (d1 - d2)
|
||||
startY += 0;
|
||||
DrawText(TextFormat("Position M1 : %.2f um", mic->d1), startX, startY, 20, ORANGE);
|
||||
float currentDiff = mic->d1 - mic->d2;
|
||||
DrawText(TextFormat("Distance M1 - M2: %.2f um", currentDiff), startX, startY, 20, ORANGE);
|
||||
|
||||
// Pas des + et -
|
||||
float stepD1 = speedMode ? 0.05f : 0.006f;
|
||||
|
||||
if (GuiButtonRepeat((Rectangle){startX, startY + 30, btnSize, 25}, "-", shouldRepeat)) mic->d1 -= stepD1;
|
||||
GuiSlider((Rectangle){startX + btnSize + 5, startY + 30, sliderWidth - 75, 25}, NULL, NULL, &mic->d1, 100, 600);
|
||||
|
||||
float sliderVal = currentDiff;
|
||||
GuiSlider((Rectangle){startX + btnSize + 5, startY + 30, sliderWidth - 75, 25}, NULL, NULL, &sliderVal, -100.0f, 100.0f);
|
||||
mic->d1 = mic->d2 + sliderVal;
|
||||
|
||||
if (GuiButtonRepeat((Rectangle){startX, startY + 30, btnSize, 25}, "-", shouldRepeat)) mic->d1 -= stepD1;
|
||||
if (GuiButtonRepeat((Rectangle){startX + btnSize + sliderWidth - 65, startY + 30, btnSize, 25}, "+", shouldRepeat)) mic->d1 += stepD1;
|
||||
if (GuiButton((Rectangle){startX + contentWidth - 60, startY + 30, 60, 25}, "Egal")) mic->d1 = mic->d2;
|
||||
|
||||
|
||||
// Angle M1 X
|
||||
startY += 90;
|
||||
DrawText(TextFormat("Inclinaison M1: %.3f deg", mic->angleM1), startX, startY, 20, ORANGE);
|
||||
@ -571,7 +575,7 @@ int main () {
|
||||
#endif
|
||||
|
||||
mic.center = (Vector2){ UI_WIDTH + (1920 - UI_WIDTH) / 2.0f - 100, 1080 / 2.0f };
|
||||
mic.d1 = 250.0f;
|
||||
mic.d1 = 265.0f;
|
||||
mic.d2 = 250.0f;
|
||||
mic.lambdas[0] = 550.0f;
|
||||
mic.lambdasCount = 1;
|
||||
|
||||
Reference in New Issue
Block a user