Horizontal angle of view calculator
A 50 mm lens on a 36 mm wide full-frame sensor covers just under forty degrees across the frame: enter focal length and sensor width in the same unit to see whether a room or landscape will fit. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Focal length
- 50
- Sensor width
- 36
- Horizontal angle degrees
- 39.597752709
- Horizontal angle radians
- 0.6911111612
- Unit note
- focal_length and sensor_width must use the same length unit
The horizontal angle of view tells you how much of a scene fits across the width of a photograph. Enter the lens focal length and the active sensor or film width in the same unit, and this calculator returns the rectilinear horizontal angle in degrees and radians. It is useful for comparing camera formats, selecting a lens before a shoot, estimating whether a room or landscape will fit in frame, and matching a physical camera to a virtual one.
Enter focal length and active sensor width consistently
Use the lens focal length and the active imaging width, expressed in the same unit. Millimetres are conventional in photography, so a common full-frame example is a focal length of 50 and a sensor width of 36. The formula depends on the ratio between those values, which means centimetres would produce the same result if both measurements were converted correctly.
Do not combine a focal length in millimetres with a width in inches. Use the active width of the recorded image, not necessarily the physical package size printed in a component drawing. Cropped video modes, digital stabilization, and unusual aspect-ratio settings may use less than the sensor's nominal width, so enter the effective width when that information is available.
Both values must be finite and greater than zero. A zero or negative focal length has no meaningful place in this rectilinear model, and a zero or negative width cannot describe an imaging area. The calculator rejects those inputs instead of returning a misleading angle.
Understand the horizontal angle returned by the formula
The calculation uses the standard rectilinear expression: two times the arctangent of sensor width divided by twice the focal length. The result describes the angle between the left and right boundaries of the ideal image cone. A wider sensor increases that angle when focal length stays fixed, while a longer focal length narrows it when sensor width stays fixed.
The response supplies degrees for shot planning and human-readable comparisons, plus radians for graphics software, simulations, and further calculations. It also echoes the validated inputs, states the formula, and includes a unit reminder.
Apply the result when planning a photograph
Use horizontal angle of view as a direct description of how widely the camera sees from a fixed position. When scouting an interior, compare candidate lenses to learn whether the walls, furniture, or a group of people can fit without moving the camera backward. For landscapes, use the angle to anticipate how much horizon a lens includes and whether foreground elements will dominate.
When comparing formats, keep the desired angle fixed and test different focal lengths with each sensor width; combinations that return nearly the same horizontal angle produce similar left-to-right framing from the same viewpoint. Perspective itself is controlled by camera position, so matching angle of view does not license moving the camera and expecting identical geometry. In virtual production, copy the returned degree value into software that asks specifically for horizontal field of view, checking that the application does not instead expect vertical or diagonal field of view.
The distinction matters because those three angles differ whenever the frame is not square. Treat the output as a planning value, then allow room for cropping, stabilization, lens distortion, viewfinder coverage, and delivery aspect ratios during the real shoot.
What you can do with it
Choose a lens for a confined location
Compare focal lengths against the camera's active sensor width to estimate which lens includes the required scene without changing position.
Match framing across camera formats
Find focal-length and sensor-width combinations with similar horizontal angles when moving between full-frame, APS-C, cinema, or custom sensors.
Configure a virtual camera
Calculate a stable horizontal field angle in degrees or radians for previs, game engines, compositing, and virtual-production scenes.
FAQ
Which units should I use?
Any length unit works when both inputs use that same unit. Photographic focal length and sensor dimensions are usually entered in millimetres.
Is horizontal angle of view the same as diagonal field of view?
No. Horizontal angle uses only the frame width. Diagonal angle uses the sensor diagonal and is therefore larger for a non-square frame.
Does crop factor need to be entered?
No. Enter the actual active sensor width directly. Crop factor is an indirect comparison and is unnecessary when the physical width is known.
What is the horizontal angle of view of a 50 mm lens on full frame?
With a sensor 36 mm wide, a 50 mm lens covers just under forty degrees from left to right. A shorter focal length or a wider sensor makes that angle larger.
Which width should I enter for a cropped video mode?
Use the width the camera actually records. Cropped video modes, digital stabilisation or unusual aspect ratios may use less than the nominal sensor width, so enter that effective width when you know it.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/hobby/photo-horizontal-angle-of-view \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"focal_length":50,"sensor_width":36}'const res = await fetch("https://api.kit.forhosting.com/hobby/photo-horizontal-angle-of-view", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"focal_length": 50,
"sensor_width": 36
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/photo-horizontal-angle-of-view",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"focal_length": 50,
"sensor_width": 36
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/photo-horizontal-angle-of-view", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"focal_length":50,"sensor_width":36}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"focal_length":50,"sensor_width":36}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/photo-horizontal-angle-of-view", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"focal_length": 50,
"sensor_width": 36
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.photo_horizontal_angle_of_view",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
The calculation is deterministic, runs without a network request in the browser, and is available through the API for $0.002 per request.
Enter focal length and active sensor width consistently
Numeric strings are accepted by the calculation core, but structured clients should send JSON numbers for a clearer contract.
Technical questions
What formula does the calculator use?
It uses 2 × atan(sensor_width ÷ (2 × focal_length)), the standard ideal rectilinear horizontal angle-of-view formula.
How much does the API request cost?
The API price is $0.002 per request. The browser calculator runs locally and can be used without an API request.