ПЕРЕСЕЧЕНИЕ СВЕТОВОГО ЛУЧА/ТРАЕКТОРИИ ЧАСТИЦЫ С ОТРАЖАЮЩЕЙ КРИВОЙ Нахождение точки отражения от кривой. Пусть задана начальная точка светового луча/траектории частицы 𝑝 = (𝑥0 , 𝑦0 ), направляющий вектор/вектор скорости 𝑣⃗ = (𝑢0 , 𝑣0 ) и отражающая кривая 𝐹(𝑥, 𝑦) = 𝐶. Тогда уравнение траектории записывается в виде 𝑥 =𝑥 +𝑡⋅𝑢 {𝑦 = 𝑦0 + 𝑡 ⋅ 𝑣0 , 0 0 и для нахождения точки пересечения этой траектории с отражающей кривой – точки отражения – нужно подставить эти уравнения в уравнение кривой 𝐹(𝑥0 + 𝑡 ⋅ 𝑢0 , 𝑦0 + 𝑡 ⋅ 𝑣0 ) = 𝐶 и решить полученное уравнение относительно параметра 𝑡. Корни этого уравнения 𝑡𝑖 позволят отыскать все точки пересечения 𝑝𝑖 = 𝑝 + 𝑡𝑖 𝑣⃗ = (𝑥0 + 𝑡𝑖 𝑢0 , 𝑦0 + 𝑡𝑖 𝑣0 ). Остается только понять, в какой из них будет происходить отражение. Рассмотрим следующий пример. Отражение от эллипса. Пусть эллипс имеет уравнение 𝑥2 𝑦2 + = 1. 𝑎2 𝑏 2 Траектория записывается в виде 𝑥 =𝑥 +𝑡⋅𝑢 {𝑦 = 𝑦0 + 𝑡 ⋅ 𝑣0 , 0 0 и после подстановки в уравнение эллипса получаем (𝑥0 + 𝑡 ⋅ 𝑢0 )2 (𝑦0 + 𝑡 ⋅ 𝑣0 )2 + = 1. 𝑎2 𝑏2 После раскрытия скобок получается квадратное уравнение 𝑢02 𝑣02 2 𝑥0 𝑢0 𝑦0 𝑣0 𝑥02 𝑦02 ( 2 + 2 ) 𝑡 + 2 ( 2 + 2 ) 𝑡 + ( 2 + 2 ) = 1. 𝑎 𝑏 𝑎 𝑏 𝑎 𝑏 Если оно не имеет корней, то траектория не пересекается с эллипсом. Если имеется пара корней, то траектории пересекается с эллипсом дважды. Посмотрим, какие упрощения возникают, когда начальная точка траектории (𝑥0 , 𝑦0 ) 𝑥2 𝑦2 лежит на самом эллипсе, то есть 𝑎02 + 𝑏02 = 1. В этом случае последнее слагаемое в уравнение можно заменить на 1, и оно приобретает вид ( 𝑢02 𝑣02 2 𝑥0 𝑢0 𝑦0 𝑣0 + 2 ) 𝑡 + 2 ( 2 + 2 ) 𝑡 + 1 = 1, 2 𝑎 𝑏 𝑎 𝑏 или 𝑢02 𝑣02 𝑥0 𝑢0 𝑦0 𝑣0 ( 2 + 2 ) 𝑡 2 + 2 ( 2 + 2 ) 𝑡 = 0. 𝑎 𝑏 𝑎 𝑏 У этого уравнения есть один тривиальный корень 𝑡 = 0, который соответствует начальной точке (𝑥0 , 𝑦0 ), и второй корень 𝑥0 𝑢0 𝑦0 𝑣0 2 + 𝑏2 𝑡1 = −2 𝑎 2 . 𝑢0 𝑣02 + 𝑎2 𝑏 2 После умножения числителя и знаменателя на 𝑎2 𝑏 2 он приобретает более компактный вид 𝑥0 𝑢0 𝑏 2 + 𝑦0 𝑣0 𝑎2 𝑡1 = −2 𝑢02 𝑏 2 + 𝑣02 𝑎2 и для второй точки пересечения с эллипсом получаем формулу 𝑥1 𝑥0 𝑥0 𝑢0 𝑏 2 + 𝑦0 𝑣0 𝑎2 𝑢0 𝑝1 = ( ) = ( ) − 2 ( ) 𝑦1 𝑦0 𝑣0 𝑢02 𝑏 2 + 𝑣02 𝑎2 Если все это делается для построения траектории светового луча/частицы внутри эллиптического резонатора/бильярда, то стоит напомнить формулу отражения 𝑣⃗1 = 𝑣⃗ − 2(𝑣⃗ ⋅ 𝑛⃗⃗)𝑛⃗⃗ и формулу для вычисления нормального вектора к кривой 𝐹(𝑥, 𝑦) = 𝐶 𝐹′ ⃗𝑁⃗ = ( 𝑥 ). 𝐹𝑦′ Для эллипса это дает 2𝑥 2 ⃗⃗ = ( 𝑎 ) 𝑁 2𝑦 𝑏2 а после умножения на 𝑎2 𝑏 2 и деления на 2 ⃗⃗ = ( 𝑁 𝑥𝑏 2 ) 𝑦𝑎2 Для нахождения единичного вектора нормали остается воспользоваться формулой 𝑛⃗⃗ = ⃗⃗ /|𝑁 ⃗⃗|. 𝑁 Отражение от окружности. Это еще более простая задача, но и более важная, так как сферические зеркала применяются всюду в оптике. Например, в лазерном резонаторе. Итак, уравнение окружности с центром в точке 𝑜 = (𝑎, 𝑏) и радиусом 𝑅 имеет вид (𝑥 − 𝑎)2 + (𝑦 − 𝑏)2 = 𝑅 2 . Будем считать, что световой луч выходит из точки 𝑝 = (𝑥0 , 𝑦0 ) и имеет единичный направляющий вектор 𝑣⃗, |𝑣⃗| = 1 𝑣⃗ = (𝑢0 , 𝑣0 ). Траектория светового луча записывается в виде 𝑥 =𝑥 +𝑡⋅𝑢 {𝑦 = 𝑦0 + 𝑡 ⋅ 𝑣0 , 0 0 и после подстановки в уравнение окружности получаем (𝑥0 + 𝑡 ⋅ 𝑢0 − 𝑎)2 + (𝑦0 + 𝑡 ⋅ 𝑣0 − 𝑏)2 = 𝑅 2 . После раскрытия скобок получается квадратное уравнение (𝑢02 + 𝑣02 )𝑡 2 + 2((𝑥0 − 𝑎)𝑢0 + (𝑦0 − 𝑏)𝑣0 )𝑡 + ((𝑥 − 𝑎)2 + (𝑦 − 𝑏)2 ) = 𝑅 2 . С учетом 𝑢02 + 𝑣02 = |𝑣⃗| = 1, имеем 𝑡 2 + 2((𝑥0 − 𝑎)𝑢0 + (𝑦0 − 𝑏)𝑣0 )𝑡 + ((𝑥 − 𝑎)2 + (𝑦 − 𝑏)2 ) − 𝑅 2 = 0. Если это квадратное уравнение не имеет корней, то луч не пересекается с окружностью. Если имеется пара корней, то луч пересекается с окружностью дважды. Вот как выглядит решение этого уравнения 𝑡1,2 = −((𝑥0 − 𝑎)𝑢0 + (𝑦0 − 𝑏)𝑣0 ) ± ±√((𝑥0 − 𝑎)𝑢0 + (𝑦0 − 𝑏)𝑣0 ) + 𝑅 2 − ((𝑥 − 𝑎)2 + (𝑦 − 𝑏)2 ). На самом деле удобнее искать точку пересечения, используя бескоординатную форму уравнения, а именно (𝑝 + 𝑡𝑣⃗ − 𝑜)2 = 𝑅 2 , что соответствует следующему рисунку Раскрывая скобки, имеем 𝑣⃗ 2 𝑡 2 − 2𝑣⃗ ⋅ (𝑝 − 𝑜) + (𝑝 − 𝑜)2 − 𝑅 2 = 0. С учетом |𝑣⃗| = 1 𝑡 2 − 2𝑣⃗ ⋅ (𝑝 − 𝑜) + (𝑝 − 𝑜)2 − 𝑅 2 = 0. Корни этого уравнения имеют вид 2 𝑡1 = 𝑣⃗ ⋅ (𝑝 − 𝑜) − √(𝑣⃗ ⋅ (𝑝 − 𝑜)) + 𝑅 2 − (𝑝 − 𝑜)2 это соответствует ближней точке пересечения 𝑝′ = 𝑝 + 𝑡′𝑣⃗, 2 𝑡2 = 𝑣⃗ ⋅ (𝑝 − 𝑜) + √(𝑣⃗ ⋅ (𝑝 − 𝑜)) + 𝑅 2 − (𝑝 − 𝑜)2 это соответствует дальней точке пересечения 𝑝′′ = 𝑝 + 𝑡′′𝑣⃗. Для окружности нормалью является радиус. Поэтому если отражение происходит в точке 𝑝1, то единичный вектор нормали вычисляется по формуле 𝑛⃗⃗ = 𝑝1 − 𝑜 𝑅 А закон отражения записывается, как обычно 𝑣⃗1 = 𝑣⃗ − 2(𝑣⃗ ⋅ 𝑛⃗⃗)𝑛⃗⃗