(in-package #:photo)
+(defun sort-size (size)
+ "Returns a cons pair with the smaller size first."
+ (if (>= (car size) (cdr size))
+ (cons (cdr size) (car size))
+ (cons (car size) (cdr size))))
+
+(defun print-magnification (imager-size print-size)
+ "Returns the magnification required between an imager and print sizes
+while taking crop into consideration."
+ (setf imager-size (sort-size imager-size))
+ (setf print-size (sort-size print-size))
+ (float (max (/ (car print-size) (car imager-size))
+ (/ (cdr print-size) (cdr print-size)))))
+
(defun coc (imager-size &key (lpm 5) (minimum-distance 250)
(viewing-distance 250)
(print-size (output-dimensions :8x10in)))
"Returns circle of confusion in mm and print magnification for a format.
Default resolving power is 5 lpm at 25cm."
-
- (let* ((imager-max (max (car imager-size) (cdr imager-size)))
- (imager-min (min (car imager-size) (cdr imager-size)))
- (print-max (max (car print-size) (cdr print-size)))
- (print-min (min (car print-size) (cdr print-size)))
- (magnification (max (/ print-max imager-max) (/ print-min imager-min)))
+ (let* ((magnification (print-magnification imager-size print-size))
(resolution-factor (/ (* magnification lpm minimum-distance) viewing-distance))
(coc (/ 1.0d0 resolution-factor)))
(values coc magnification)))
"Returns the bellows factor, the ratio of effective aperature to actual aperture."
(1+ (magnification :focal-length focal-length :object-distance object-distance)))
+(defun extension-tube (focal-length &key original-object-distance new-object-distance original-image-distance
+ new-object-distnace original-magnification new-magification
+ extension-length (units :feet))
+ "Computes the parameters for using extension tubes.
+Requires: 1. original-object-distance, original-image-distance, or original-magnification
+ 2. new-object-distance, new-image-distance, new-magnification, or extension-length
+Returns: original-object-distance, original-image-distance, original-magnification,
+ new-object-distance, new-image-distance, new-magnification, extension-length."
+ )
+
+