Расчёт глубины резкости (Citizen)
В своём творчестве фотографы часто используют вещи, которые никакого отношения к фотографии, казалось бы, не имеют. Причём часто встречаются очень оригинальные решения. Предлагаю использовать калькулятор как дополнение к механическому фотоаппарату, не обременённому излишней электроникой.
Приведённые ниже программы писались и тестировались на ПМК CITIZEN srp-175. Он дает возможность ввести четыре программы с общим числом шагов – 128. На сайте Citizen я нашёл информацию ещё о двух программируемых моделях: srp-45N и srp-145T. У них одно поле программы и всего 40 шагов памяти.
1. Расчёт ближнего и дальнего расстояний (58 шагов памяти)
Входные данные:
- фокусное расстояние (м);
- значение диафрагмы;
- расстояние по шкале.
Выходные данные:
- ближнее расстояние;
- дальнее расстояние;
- гиперфокальное расстояние.
01..15 [x] STO 1 [x] STO 2 1/X * 1 7 2 0 * RCL 0
16..29 = STO 3 * RCL 1 / ( RCL 3 - RCL 1 +
30..44 RCL 0 ) = STO 4 RCL 3 * RCL 1 / ( RCL 3
45..58 + RCL 1 - RCL 0 ) = a RCL 4 b R® P P® R
Перед первым запуском программы, а также после каждой смены объектива фокусное расстояние (м) заносится в регистр памяти 0. Например:
0 . 1 3 5 STO 0
После запуска программы (у меня RUN 9):
- на запрос -001- вводить расстояние по шкале, например, 7;
- RUN;
- на запрос -002- ставить значение диафрагмы, например, 5.6;
- RUN;
- на экране получаем ближайшее расстояние: 6.005675351 (занесено в переменную a), нажимаем b - читаем 8.388901505.
Теперь можно, нажимая a и b, смотреть соответственно ближнее и дальнее расстояния. Гиперфокальное расстояние лежит в ячейке памяти 3: RCL 3 ® 41.46428571
.
Для дальнейших вычислений повторить абзац сначала.
2. Расчёт расстояния по шкале и значения диафрагмы (49 шагов памяти)
Входные данные:
- фокусное расстояние (м);
- ближнее расстояние;
- дальнее расстояние.
Выходные данные:
- значение диафрагмы;
- расстояние по шкале.
01..10 2 * [x] STO 1 * [x] STO 2 / ( RCL 1 +
15..30 RCL 2 ) = STO 3 - RCL 1 = * 1 7 2 0 /
31..43 RCL 1 / ( RCL 3 / RCL 0 - 1 ) =
44..49 b RCL 3 a R® P P® R
Перед первым запуском программы, а также после каждой смены объектива фокусное расстояние (м) заносится в регистр памяти 0. Например,
0 . 0 5 0 STO 0
После запуска программы (у меня RUN 6):
- на запрос -001- вводить ближнее расстояние, например, 5;
- RUN;
- на запрос -002- ставить дальнее расстояние, например, 10;
- RUN;
- на экране получаем расстояние по шкале 6.666666667 (занесено в переменную a), нажимаем b - читаем 4.332493703 (значение диафрагмы).
Теперь можно, нажимая a и b, смотреть эти значения поочерёдно.
Для дальнейших вычислений повторить абзац сначала.
Для вычислений использовались формулы (последние две формулы выведены из первых трёх):
G = 1720 * f / d
m1 = G * m / ( G + ( m – f ) )
m2 = G * m / ( G – ( m – f ) )
m = 2 * m1 * m2 / ( m1 + m2 )
d = 1720 * ( m – m1 ) / m1 / ( m / f – 1 )
G – гиперфокальное расстояние;
m1 – ближнее расстояние;
m2 – дальнее расстояние;
f – фокусное расстояние объектива;
d – значение диафрагмы.
Из-за очень малого объёма памяти и неразвитой системы условных переходов, в программах отсутствует любая проверка корректности данных. Полученное отрицательное значение m2 означает бесконечность.
Несколько рекомендаций:
- после входа в режим программирования (на дисплее lrn) стоит очистить память – INV ON;
- при наборе программ после команды [x] необходимо подставить значения переменных;
- если во второй программе нужно ввести m2 = бесконечность, вводите очень большое число, например, EXP 99 (1*1099);
- чтобы уменьшить формат выводимых значений, например, до трёх знаков после запятой, введите команду TAB 3; возврат в обычное состояние калькулятора – TAB . (точка).
И последнее. Если после прочтения у вас возникнет неудержимое желание забросать меня гневными письмами, прошу учесть два обстоятельства:
- фотограф из меня пока ещё хуже, чем программист;
- а программист я просто никакой.
Статья подготовлена Иваном Савоченко, сайт photoline.ru.
blog comments powered by Disqus