Когда белый свет преломляется решеткой, каждый цвет получает свою пространственную частоту. Как только вы окажетесь более чем на небольшом расстоянии от оптической оси (где у вас есть максимум белого), вы начнете видеть эффект перекрытия нескольких цветов. Это еще больше усугубляется наличием протяженного источника - неидеально коллимированный свет будет больше «размазывать» свет.
В результате всего этого вы увидите не просто цвета радуги, а смешанные цвета. На самом деле это то, что можно вычислить с помощью нескольких строк кода. Затем вы можете преобразовать интенсивности длин волн в значения RGB, используя утилиты преобразования, доступные в Интернете (например, см. SpectreRGB.m ). Результат (небольшой хак... кто-то может захотеть сделать это более тщательно):
Но хотя это показывает, как могут выглядеть компоненты RGB, на самом деле это не говорит вам о том, что увидят ваши глаза. Но следующий сюжет делает...:
Как видите, с помощью этого простого расчета можно получить «розовый» цвет, который вы видите. Код Matlab, который я использовал для этого:
% white light diffraction exercise
% assume diffraction pattern of the form I = cos^2( k x / lambda)
N = 400;
% for lambda = 400 nm, assume 4 complete cycles
lambda_0 = 400;
k = lambda_0/2;
I = zeros(3,N);
x = linspace(0,8*pi, N);
for lambda = 400:800
rgb = spectrumRGB(lambda);
I0 = cos(k*x/lambda).^2;
I = I + rgb(:) * I0;
end
%%
I = I / max(I(:));
figure
image('cdata', repmat(reshape(I', [N 1 3]),[1 10 1]))
axis off
%%
figure
plot(I(1,:),'r')
hold on
plot(I(2,:),'g')
plot(I(3,:),'b')
title 'RGB values of diffracted white light'
xlabel 'angle (arb units)'
ylabel 'intensity (arb units)'
пользователь130529
Эмилио Писанти
Куш
Куш
Фарчер
Фарчер
Кайл Канос