paparazzo
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: от тех что идут в комплекте с земакс до них большой шаг | Так это база, как строить трассировку лучей. Стартовая точка - пересечение луча с плоской фасеткой, Zemax ее сам знает. Дальше либо тупо движемся по лучу, в случае явной функции, либо метод Ньютона, еслт параметричемкая. А нормали автоматом из Якобиана берем Их даже считать не нужно. Зная нормаль, Zemax применяеь векторный закон преломления. В Zemax примерах нюансы именно программы. А если с лучами работать, например source dll или scatter dll. Просто принять как аксиому - луч есть вектор с координатами l,m,n. Если делать над ним преобразования - повороты, масштабирования, наклоны, переводим в сферическую систему, там он есть суть r. Тогда всё элементарно. А под конец в декартову снова. Ну и все свойства векторов автоматом применяются. Векторная алгебра в помощь. И ещё, часто бывает что функция интересная, а ее производная явная это простыня многоэтажная. Я тогда применяю приближенное вычисление производной. Тут очень важный момент, нужно использовать формулы поаышенной точности, т.н. четырехточечную схему, стандартные формулы из курса высшей математики могут привести к сбоям в методе Ньютона. И ещё, некоторые сложные функции, содержащие sin, cos могут давать решение для t только в одном квадранте углов, к примеру от 0 до Pi/2. А у нас же все квадранты. Можно сделать трюк, поворотом луча переместить его в нужный квадрант, решить систему и обратным поворотом перекинуть в исходный квадрант. Вроде описал основные нюансы математики создания Dll для Zemax. | Всего записей: 3775 | Зарегистр. 06-04-2003 | Отправлено: 21:32 24-04-2018 | Исправлено: paparazzo, 22:33 24-04-2018 |
|