Depth of Field Calculator

ANALife Services AuthorityNational 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

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References