Depth of Field Calculator
ANA›Life Services Authority›National Calculator Authority›Depth of Field Calculator
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Depth of Field Calculator
Calculate the near limit, far limit, and total depth of field based on lens focal length, aperture, subject distance, and circle of confusion.
Focal Length (mm)
Aperture (f-number)
Subject Distance (m)
Circle of Confusion (mm)
Common values: Full-frame 0.029 mm, APS-C 0.019 mm, Micro 4/3 0.015 mm
Calculate Results will appear here.
function depCalc() { const resultDiv = document.getElementById('dep-result');
const focalMm = parseFloat(document.getElementById('dep-focal').value); const aperture = parseFloat(document.getElementById('dep-aperture').value); const distanceM = parseFloat(document.getElementById('dep-distance').value); const cocMm = parseFloat(document.getElementById('dep-coc').value);
// --- Validation --- if (isNaN(focalMm) || focalMm Please enter a valid focal length (> 0 mm).'; return; } if (isNaN(aperture) || aperture Please enter a valid aperture f-number (> 0).'; return; } if (isNaN(distanceM) || distanceM Please enter a valid subject distance (> 0 m).'; return; } if (isNaN(cocMm) || cocMm Please enter a valid circle of confusion (> 0 mm).'; return; }
// Convert subject distance to mm for consistent units const distanceMm = distanceM * 1000.0;
// --- Hyperfocal Distance --- // H = (f^2) / (N * c) + f // where f = focal length (mm), N = aperture (f-number), c = CoC (mm) const hyperfocalMm = (focalMm * focalMm) / (aperture * cocMm) + focalMm; const hyperfocalM = hyperfocalMm / 1000.0;
// --- Near Limit of DoF --- // D_near = (H * s) / (H + s - f) [simplified: H + (s - f) ≈ H + s for s >> f] // Full formula: D_near = s * (H - f) / (H + s - 2f) const nearMm = (distanceMm * (hyperfocalMm - focalMm)) / (hyperfocalMm + distanceMm - 2 * focalMm);
// --- Far Limit of DoF --- // D_far = s * (H - f) / (H - s) // If s >= H, far limit is infinity let farMm, farDisplay, farM; const denomFar = hyperfocalMm - distanceMm; if (denomFar
Parameter Value
Hyperfocal Distance ${hyperfocalM.toFixed(3)} m
Near Limit of DoF ${nearM.toFixed(3)} m
Far Limit of DoF ${farDisplay}
Total Depth of Field ${dofDisplay}
In-focus in front of subject ${inFrontM}
In-focus behind subject ${behindM}
Note: When subject distance ≥ hyperfocal distance (${hyperfocalM.toFixed(2)} m), everything from the near limit to infinity is in focus.
`; }
#### Formulas Used
Hyperfocal Distance (H):
H = f² / (N × c) + f
Near Limit of Depth of Field (Dnear):
Dnear = s × (H − f) / (H + s − 2f)
Far Limit of Depth of Field (Dfar):
Dfar = s × (H − f) / (H − s) [∞ when s ≥ H]
Total Depth of Field (DoF):
DoF = Dfar − Dnear
Where: f = focal length (mm), N = aperture f-number, c = circle of confusion (mm), s = subject distance (mm).
#### Assumptions & References
- Reference: Sidney F. Ray, Applied Photographic Optics, 3rd ed., Focal Press, 2002.
- Reference: Leslie Stroebel, View Camera Technique, 7th ed., Focal Press, 1999.
More Calculators
- New Jersey Commercial Property Transfer Tax Calculator
- New Jersey Electrical Permit Fee Estimator
- New Jersey Commercial Mortgage Payment Calculator
- Commercial Lease Cost Per Square Foot Calculator
- New Jersey EV Charger Installation Cost Estimator
- NJ Residential Electrical Load Calculator
- NJ Solar Panel System Size and Savings Calculator
- Business Startup Cost Estimator
- Compound Interest Calculator
- Generator Runtime and Fuel Calculator
- Gutter Sizing Calculator
- Macronutrient Balance Calculator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...