{"id":2405,"date":"2026-11-05T09:33:02","date_gmt":"2026-11-05T15:33:02","guid":{"rendered":"https:\/\/www.ozzmx.com\/?page_id=2405"},"modified":"2026-11-05T09:38:52","modified_gmt":"2026-11-05T15:38:52","slug":"isoptic-horizontal","status":"publish","type":"page","link":"https:\/\/www.ozzmx.com\/es\/isoptic-horizontal\/","title":{"rendered":"Horizontal Isoptic"},"content":{"rendered":"\t<main id=\"hisop-page\" class=\"site-main hisop-page\">\n\t\t<div class=\"hisop-page__wrap alignwide\">\n\n\t\t\t<noscript>\n\t\t\t\t<p class=\"hisop-noscript\">\n\t\t\t\t\t<strong>Horizontal Isoptic:<\/strong> the calculator runs in the browser.\n\t\t\t\t\tPlease enable JavaScript to draw the plan and export DXF or PDF files.\n\t\t\t\t<\/p>\n\t\t\t<\/noscript>\n\n\t\t\t\t\t\t\t<div class=\"hisop-src\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.field\">Field \/ stage side<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.opening\">Line of interest<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.firstRow\">First row<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.row\">Row<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.center\">Center<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.radius\">Radius<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.theta\">Visual angle<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.isopter\">Isopter (constant angle)<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.straight\">Straight row<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.sagitta\">Sagitta<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.setback\">Setback<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.length\">Row length<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.seat\">Seat<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.endSeat\">Worst seat<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.axis\">Axis<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"draw.scale\">Plan view<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"method.fan\">Fan method<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"method.iso\">Isopter arc<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"method.straight\">Straight row<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"state.ok\">Within limits<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"state.warn\">Check<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"state.err\">Not valid<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"table.row\">Row<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"table.radius\">Radius<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"table.length\">Length<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"table.thetaC\">Angle at center<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"table.thetaE\">Angle at worst seat<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"table.seats\">Seats<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"table.status\">Status<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"sum.rows\">rows<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"sum.seats\">seats<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"unit.deg\">deg<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.cNonPositive\">The line of interest must be longer than zero.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.bNonPositive\">The first-row distance must be greater than zero.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.dNonPositive\">The available row length must be greater than zero.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.aNonPositive\">The seat pitch must be greater than zero.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.fanM\">The fan multiplier m must be greater than zero.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.rowCrossesLine\">Row {n} would cross the line of interest: reduce d or increase m.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.rowBehindCenter\">Row {n} would sit behind the fan centre. Reduce the number of rows or increase m.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.thetaOver\">The first row is closer than the {max}\u00b0 limit. Minimum distance is {bmin}.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.thetaEndLow\">The worst seat of row {n} sees only {val}; the target minimum is {min}.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.headClear\">Head clearance fails at the worst seat of row {n}: sin \u03c6 = {val} and e\/a = {ratio}.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.arcClipped\">The isopter only spans {liso}; the row was trimmed from {d}. Increase b or shorten d.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.straightOk\">A straight row meets both the head-clearance and the angle criteria, so no arc is needed.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.arcChosen\">The straight row leaves the worst seat below the angle target, so the isopter arc is used.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.clearChosen\">Head clearance rules out a straight row, so the isopter arc is used.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.fanNote\">In a fan the angle always drops towards the ends. Compare the centre and worst-seat columns.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.allOk\">All criteria are met for the current input.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"table.empty\">Enter valid values to see the rows.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"msg.setback\">The arc end would be closer than {bc} to the line and was trimmed there.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.title\">Horizontal Isoptic - Technical Report<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.method\">Method<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.units\">Units<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.date\">Date<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.params\">Input parameters<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.drawing\">Plan diagram<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.results\">Row-by-row results<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.notes\">Notes<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.footer\">Generated locally in the browser. No data is uploaded.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.param\">Parameter<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"pdf.value\">Value<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"toast.preset\">Preset applied.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"toast.dxf\">DXF file generated.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"toast.pdf\">PDF report generated.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"toast.busy\">Generating...<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"toast.fail\">Something went wrong while generating the file.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"toast.lib\">The PDF library could not be loaded. Check your connection.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<span data-hisop-key=\"toast.invalid\">Fix the input values before exporting.<\/span>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\n\t\t\t<div class=\"hisop\">\n<div class=\"hisop__head\">\n  <div>\n    <h1 class=\"hisop__title\">Horizontal Isoptic<\/h1>\n    <p class=\"hisop__sub\">Plan-view seating geometry for auditoriums and stadiums. Choose a method, enter the parameters and the diagram, table and CAD file update as you type.<\/p>\n  <\/div>\n  <ul class=\"hisop-where\" style=\"margin:0\">\n    <li>Horizontal only<\/li>\n    <li>Plan view<\/li>\n    <li>Metric \/ ft-in<\/li>\n  <\/ul>\n<\/div>\n\n<div class=\"hisop-tabs\" role=\"tablist\" aria-label=\"Calculation method\">\n  <button class=\"hisop-tab\" id=\"hisop-tab-fan\" role=\"tab\" aria-controls=\"hisop-panel-fan\"\n    aria-selected=\"true\" data-tab=\"fan\" data-tip=\"Radial rows generated from a single fan centre.\">\n    <span class=\"hisop-tab__idx\">01<\/span>Auditorium \/ Theater<\/button>\n  <button class=\"hisop-tab\" id=\"hisop-tab-iso\" role=\"tab\" aria-controls=\"hisop-panel-iso\"\n    aria-selected=\"false\" tabindex=\"-1\" data-tab=\"iso\" data-tip=\"Concentric rows that keep the visual angle constant.\">\n    <span class=\"hisop-tab__idx\">02<\/span>Stadium \/ Arena<\/button>\n<\/div>\n\n<!-- ============================================================ FAN -->\n<section class=\"hisop-panel\" id=\"hisop-panel-fan\" role=\"tabpanel\" aria-labelledby=\"hisop-tab-fan\" data-units=\"metric\">\n\n  <div class=\"hisop-explain\">\n    <div class=\"hisop-explain__text\">\n      <h3>The fan method<\/h3>\n      <p>Every row is an arc of a circle drawn from one <b>fan centre P<\/b> placed <i>m\u00b7c<\/i> behind the line of interest.\n        Because all rows share the same angular span <i>\u03b2<\/i>, the rows open out as they move back: this is the classic\n        layout for drama theatres, lecture halls and small auditoriums where the stage opening <i>c<\/i> is narrow and the\n        room widens quickly.<\/p>\n      <p>The angle is at its best at the centre and drops towards the ends, so both values are reported. The head-clearance\n        check compares the angle between the sightline and the row with the ratio <i>e\/a<\/i>.<\/p>\n      <ul class=\"hisop-where\">\n        <li>Drama theater<\/li>\n        <li>Lecture hall<\/li>\n        <li>Community auditorium<\/li>\n        <li>Conference room<\/li>\n      <\/ul>\n      <div class=\"hisop-fx\">\n        <div class=\"hisop-fx__row\"><div class=\"hisop-fx__f\">P = m \u00b7 c&#8195;&#8195;R\u2081 = P + b<\/div><div class=\"hisop-fx__n\">fan centre and first-row radius<\/div><\/div>\n        <div class=\"hisop-fx__row\"><div class=\"hisop-fx__f\">\u03b2 = d \/ (2 \u00b7 R\u2081)&#8195;&#8195;L\u2099 = 2 \u00b7 R\u2099 \u00b7 \u03b2<\/div><div class=\"hisop-fx__n\">half angle of the fan and length of row n<\/div><\/div>\n        <div class=\"hisop-fx__row\"><div class=\"hisop-fx__f\">R\u2099 = R\u2081 + (n \u2212 1) \u00b7 \u0394&#8195;&#8195;N seats = \u230aL\u2099 \/ a\u230b<\/div><div class=\"hisop-fx__n\">concentric rows and seat count<\/div><\/div>\n        <div class=\"hisop-fx__row\"><div class=\"hisop-fx__f\">\u03b8 = 2 \u00b7 atan[ (c\/2) \/ (b + (n\u22121)\u00b7\u0394) ]<\/div><div class=\"hisop-fx__n\">visual angle at the centre of the row<\/div><\/div>\n        <div class=\"hisop-fx__row\"><div class=\"hisop-fx__f\">sin \u03c6 \u2265 e \/ a&#8195;&#8195;b \u2265 b_min = (c\/2) \/ tan(\u03b8max\/2)<\/div><div class=\"hisop-fx__n\">head clearance and first-row limit<\/div><\/div>\n      <\/div>\n    <\/div>\n    <figure class=\"hisop-figure\">\n      <div data-figure=\"fan\"><\/div>\n      <figcaption>Plan view of the fan: centre P, radius R, half angle \u03b2, first rows at b and c.<\/figcaption>\n    <\/figure>\n  <\/div>\n\n  <div class=\"hisop-bar\">\n    <div class=\"hisop-units\" role=\"group\" aria-label=\"Units\">\n      <span class=\"hisop-units__lbl\">Units<\/span>\n      <button type=\"button\" data-unit-btn=\"imperial\" data-tab=\"fan\" aria-pressed=\"false\"\n        data-tip=\"Feet and decimal inches.\">ft \u2013 in<\/button>\n      <button type=\"button\" data-unit-btn=\"metric\" data-tab=\"fan\" aria-pressed=\"true\"\n        data-tip=\"Meters and centimeters.\">m<\/button>\n    <\/div>\n    <div class=\"hisop-presets\">\n      <span class=\"hisop-presets__lbl\">Presets<\/span>\n      <button type=\"button\" class=\"hisop-chip\" data-preset=\"fan-a\" data-tip=\"Small theater, 10 m opening.\">Small theater<\/button>\n      <button type=\"button\" class=\"hisop-chip\" data-preset=\"fan-b\" data-tip=\"Mid-size hall, 18 m opening.\">Lecture hall<\/button>\n      <button type=\"button\" class=\"hisop-chip\" data-preset=\"fan-c\" data-tip=\"Wide auditorium, 26 m opening.\">Wide auditorium<\/button>\n    <\/div>\n  <\/div>\n\n  <fieldset class=\"hisop-group\">\n  <legend>Geometry<\/legend>\n  <div class=\"hisop-grid\">\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Total width of the stage opening the audience has to see.\"><span class=\"hisop-sym\">c<\/span><span>Stage opening \/ line of interest<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"c\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Stage opening \/ line of interest (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"c\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Stage opening \/ line of interest (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"c\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Stage opening \/ line of interest (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"c\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"From the line of interest to the centre of the first row.\"><span class=\"hisop-sym\">b<\/span><span>Distance to the first row<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"b\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Distance to the first row (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"b\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Distance to the first row (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"b\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Distance to the first row (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"b\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Measured along the arc; it sets the half angle of the fan.\"><span class=\"hisop-sym\">d<\/span><span>Available length of the first row<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"d\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Available length of the first row (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"d\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Available length of the first row (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"d\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Available length of the first row (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"d\"><\/div>\n    <\/div>\n  <\/div>\n<\/fieldset>\n<fieldset class=\"hisop-group\">\n  <legend>Seating<\/legend>\n  <div class=\"hisop-grid\">\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Centre-to-centre distance between two seats.\"><span class=\"hisop-sym\">a<\/span><span>Seat pitch<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"a\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Seat pitch (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"a\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Seat pitch (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"a\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Seat pitch (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"a\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Used by the head-clearance check: sin \u03c6 \u2265 e\/a.\"><span class=\"hisop-sym\">e<\/span><span>Half head width<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"e\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Half head width (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"e\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Half head width (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"e\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Half head width (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"e\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Distance from one row to the next.\"><span class=\"hisop-sym\">\u0394<\/span><span>Row depth<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"dr\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Row depth (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"dr\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Row depth (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"dr\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Row depth (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"dr\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"How many concentric rows to generate.\"><span class=\"hisop-sym\">N<\/span><span>Number of rows<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-any\"><input data-k=\"rows\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Number of rows\"><span class=\"hisop-u__tag\">#<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"rows\"><\/div>\n    <\/div>\n  <\/div>\n<\/fieldset>\n<fieldset class=\"hisop-group\">\n  <legend>Criteria<\/legend>\n  <div class=\"hisop-grid\">\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Largest total horizontal angle accepted at row 1.\"><span class=\"hisop-sym\">\u03b8<sub>max<\/sub><\/span><span>Max. angle at the first row<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-any\"><input data-k=\"thetaMax\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Max. angle at the first row\"><span class=\"hisop-u__tag\">\u00b0<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"thetaMax\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Smallest angle accepted at the extreme seat of any row.\"><span class=\"hisop-sym\">\u03b8<sub>min<\/sub><\/span><span>Min. angle at the worst seat<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-any\"><input data-k=\"thetaMin\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Min. angle at the worst seat\"><span class=\"hisop-u__tag\">\u00b0<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"thetaMin\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Distance from the line to the fan centre, as a multiple of c.\"><span class=\"hisop-sym\">m<\/span><span>Fan multiplier (P = m\u00b7c)<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-any\"><input data-k=\"m\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Fan multiplier (P = m\u00b7c)\"><span class=\"hisop-u__tag\">\u00d7<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"m\"><\/div>\n    <\/div>\n  <\/div>\n<\/fieldset>\n\n  <div class=\"hisop-outs\" aria-live=\"polite\">\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">R<\/span><span class=\"hisop-out__v\" data-out=\"R\">\u2014<\/span><span class=\"hisop-out__n\">First-row radius<\/span><\/div>\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">P<\/span><span class=\"hisop-out__v\" data-out=\"P\">\u2014<\/span><span class=\"hisop-out__n\">Centre behind the line<\/span><\/div>\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">\u03b8<\/span><span class=\"hisop-out__v\" data-out=\"theta1\">\u2014<\/span><span class=\"hisop-out__n\">Angle at the centre<\/span><\/div>\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">\u03b8e<\/span><span class=\"hisop-out__v\" data-out=\"thetaE\">\u2014<\/span><span class=\"hisop-out__n\">Angle at the worst seat<\/span><\/div>\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">b_min<\/span><span class=\"hisop-out__v\" data-out=\"bmin\">\u2014<\/span><span class=\"hisop-out__n\">Minimum first-row distance<\/span><\/div>\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">L_max<\/span><span class=\"hisop-out__v\" data-out=\"Lmax\">\u2014<\/span><span class=\"hisop-out__n\">Straight-row limit<\/span><\/div>\n  <\/div>\n\n  <div class=\"hisop-msgs\" data-msgs><\/div>\n\n  <div class=\"hisop-canvas\">\n    <div class=\"hisop-canvas__bar\">\n      <div class=\"hisop-badges\">\n        <span class=\"hisop-badge hisop-badge--method\" data-badge=\"method\">Fan method<\/span>\n        <span class=\"hisop-badge hisop-badge--ok\" data-badge=\"state\">Within limits<\/span>\n      <\/div>\n      <div class=\"hisop-zoom\">\n        <button type=\"button\" data-zoom=\"out\" data-tab=\"fan\" aria-label=\"Zoom out\" data-tip=\"Zoom out\">\u2212<\/button>\n        <button type=\"button\" data-zoom=\"in\" data-tab=\"fan\" aria-label=\"Zoom in\" data-tip=\"Zoom in\">+<\/button>\n        <button type=\"button\" data-zoom=\"reset\" data-tab=\"fan\" aria-label=\"Reset view\" data-tip=\"Reset the view\">\u2922<\/button>\n      <\/div>\n    <\/div>\n    <div class=\"hisop-canvas__stage\" data-stage data-tab=\"fan\"\n      data-tip=\"Drag to pan. Scroll or pinch to zoom.\"><\/div>\n  <\/div>\n\n  <div class=\"hisop-actions\">\n    <button type=\"button\" class=\"hisop-btn\" data-export=\"dxf\" data-tab=\"fan\" data-tip=\"Download the plan as a CAD file (DXF R12, layers and real units).\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 3v12m0 0l-4-4m4 4l4-4M4 21h16\"\/><\/svg>Download DXF<\/button>\n    <button type=\"button\" class=\"hisop-btn\" data-export=\"pdf\" data-tab=\"fan\" data-tip=\"Open a printable report with the parameters, the diagram and the table.\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M7 3h7l4 4v14H7z\"\/><path d=\"M14 3v4h4M9 13h6M9 17h6\"\/><\/svg>View PDF<\/button>\n    <button type=\"button\" class=\"hisop-btn hisop-btn--ghost\" data-help data-tab=\"fan\" data-tip=\"Brief explanation of every parameter.\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M9.5 9a2.5 2.5 0 115 .5c0 1.5-2.5 2-2.5 3.5M12 17h.01\"\/><\/svg>Help<\/button>\n  <\/div>\n\n  <div class=\"hisop-results\">\n    <div class=\"hisop-results__head\">\n      <h4>Row-by-row results<\/h4>\n      <span class=\"hisop-results__sum\" data-sum><\/span>\n    <\/div>\n    <div class=\"hisop-scroll\">\n      <table class=\"hisop-table\">\n        <thead>\n          <tr>\n            <th>Row<\/th><th>R<\/th><th>L<\/th><th>\u03b8 center<\/th><th>\u03b8 worst<\/th><th>Seats<\/th><th>Status<\/th>\n          <\/tr>\n        <\/thead>\n        <tbody data-tbody><\/tbody>\n      <\/table>\n    <\/div>\n  <\/div>\n\n  <p class=\"hisop-note\">The drawing is a plan view; vertical sightlines, eye height and C values are outside the scope of this page.\n    Angles are total horizontal angles subtended by the line of interest.<\/p>\n<\/section>\n\n<!-- ============================================================ ISO -->\n<section class=\"hisop-panel\" id=\"hisop-panel-iso\" role=\"tabpanel\" aria-labelledby=\"hisop-tab-iso\" data-units=\"metric\" hidden>\n\n  <div class=\"hisop-explain\">\n    <div class=\"hisop-explain__text\">\n      <h3>The isopter arc<\/h3>\n      <p>The <b>isopter<\/b> is the locus of the points that see the whole line of interest under the same angle.\n        For a straight line it is a circular arc through both ends of the line of interest, with radius <i>R<\/i> and\n        centre <i>P<\/i> behind it. Every seat on that arc has the same visual angle, so the ends of the row are not\n        penalised as they are in a fan.<\/p>\n      <p>The first row is placed at <i>b<\/i>. A straight row is used when the available length <i>d<\/i> fits inside the\n        head-clearance limit <i>L_max<\/i> and the worst seat still reaches <i>\u03b8min<\/i>; otherwise the isopter arc is\n        drawn. Rear rows are concentric offsets of the same arc, which is how a stadium bowl grows.<\/p>\n      <ul class=\"hisop-where\">\n        <li>Stadium<\/li>\n        <li>Sports arena<\/li>\n        <li>Amphitheater<\/li>\n        <li>Bowl seating<\/li>\n      <\/ul>\n      <div class=\"hisop-fx\">\n        <div class=\"hisop-fx__row\"><div class=\"hisop-fx__f\">R = [ b\u00b2 + (c\/2)\u00b2 ] \/ (2 \u00b7 b)<\/div><div class=\"hisop-fx__n\">isopter radius<\/div><\/div>\n        <div class=\"hisop-fx__row\"><div class=\"hisop-fx__f\">P = R \u2212 b&#8195;&#8195;\u03b8 = 2 \u00b7 atan[ (c\/2) \/ b ]<\/div><div class=\"hisop-fx__n\">centre behind the line and angle on the arc<\/div><\/div>\n        <div class=\"hisop-fx__row\"><div class=\"hisop-fx__f\">L_max = c + 2\u00b7b\u00b7\u221a(a\u00b2 \u2212 e\u00b2) \/ e<\/div><div class=\"hisop-fx__n\">longest straight row allowed by head clearance<\/div><\/div>\n        <div class=\"hisop-fx__row\"><div class=\"hisop-fx__f\">L_iso = 2 \u00b7 R \u00b7 (\u03c0 \u2212 \u03b8)<\/div><div class=\"hisop-fx__n\">arc length between both ends of the line<\/div><\/div>\n        <div class=\"hisop-fx__row\"><div class=\"hisop-fx__f\">STRAIGHT if d \u2264 L_max and \u03b8_end \u2265 \u03b8min, else ARC<\/div><div class=\"hisop-fx__n\">decision rule applied by the page<\/div><\/div>\n      <\/div>\n    <\/div>\n    <figure class=\"hisop-figure\">\n      <div data-figure=\"iso\"><\/div>\n      <figcaption>Plan view of the isopter: centre P, radius R, sagitta b and the constant angle \u03b8.<\/figcaption>\n    <\/figure>\n  <\/div>\n\n  <div class=\"hisop-bar\">\n    <div class=\"hisop-units\" role=\"group\" aria-label=\"Units\">\n      <span class=\"hisop-units__lbl\">Units<\/span>\n      <button type=\"button\" data-unit-btn=\"imperial\" data-tab=\"iso\" aria-pressed=\"false\"\n        data-tip=\"Feet and decimal inches.\">ft \u2013 in<\/button>\n      <button type=\"button\" data-unit-btn=\"metric\" data-tab=\"iso\" aria-pressed=\"true\"\n        data-tip=\"Meters and centimeters.\">m<\/button>\n    <\/div>\n    <div class=\"hisop-presets\">\n      <span class=\"hisop-presets__lbl\">Presets<\/span>\n      <button type=\"button\" class=\"hisop-chip\" data-preset=\"iso-a\" data-tip=\"Short row: the page should choose a straight row.\">Straight demo<\/button>\n      <button type=\"button\" class=\"hisop-chip\" data-preset=\"iso-b\" data-tip=\"Long row: the page should switch to the arc.\">Arc demo<\/button>\n      <button type=\"button\" class=\"hisop-chip\" data-preset=\"iso-c\" data-tip=\"Arc trimmed by a clearance line.\">Setback<\/button>\n    <\/div>\n  <\/div>\n\n  <fieldset class=\"hisop-group\">\n  <legend>Geometry<\/legend>\n  <div class=\"hisop-grid\">\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Touchline, sideline or full length that must be seen.\"><span class=\"hisop-sym\">c<\/span><span>Field width \/ line of interest<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"c\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Field width \/ line of interest (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"c\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Field width \/ line of interest (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"c\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Field width \/ line of interest (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"c\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"From the line of interest to the centre of the first row.\"><span class=\"hisop-sym\">b<\/span><span>Distance to the first row<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"b\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Distance to the first row (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"b\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Distance to the first row (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"b\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Distance to the first row (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"b\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Compared with L_max to choose between a straight row and the arc.\"><span class=\"hisop-sym\">d<\/span><span>Available row length<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"d\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Available row length (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"d\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Available row length (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"d\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Available row length (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"d\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Minimum distance to the line of interest: track, moat or apron.\"><span class=\"hisop-sym\">bc<\/span><span>Clearance line \/ setback (0 = none)<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"bClear\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Clearance line \/ setback (0 = none) (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"bClear\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Clearance line \/ setback (0 = none) (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"bClear\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Clearance line \/ setback (0 = none) (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"bClear\"><\/div>\n    <\/div>\n  <\/div>\n<\/fieldset>\n<fieldset class=\"hisop-group\">\n  <legend>Seating<\/legend>\n  <div class=\"hisop-grid\">\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Centre-to-centre distance between two seats.\"><span class=\"hisop-sym\">a<\/span><span>Seat pitch<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"a\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Seat pitch (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"a\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Seat pitch (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"a\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Seat pitch (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"a\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Used by the head-clearance check: sin \u03c6 \u2265 e\/a.\"><span class=\"hisop-sym\">e<\/span><span>Half head width<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"e\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Half head width (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"e\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Half head width (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"e\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Half head width (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"e\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Rear rows are concentric offsets of the same arc.\"><span class=\"hisop-sym\">\u0394<\/span><span>Row depth<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-imperial\"><input data-k=\"dr\" data-u=\"ft\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Row depth (ft)\"><span class=\"hisop-u__tag\">ft<\/span><\/span>\n        <span class=\"hisop-u u-imperial\"><input data-k=\"dr\" data-u=\"in\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Row depth (in)\"><span class=\"hisop-u__tag\">in<\/span><\/span>\n        <span class=\"hisop-u u-metric\"><input data-k=\"dr\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Row depth (m)\"><span class=\"hisop-u__tag\">m<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"dr\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"How many concentric rows to generate.\"><span class=\"hisop-sym\">N<\/span><span>Number of rows<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-any\"><input data-k=\"rows\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Number of rows\"><span class=\"hisop-u__tag\">#<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"rows\"><\/div>\n    <\/div>\n  <\/div>\n<\/fieldset>\n<fieldset class=\"hisop-group\">\n  <legend>Criteria<\/legend>\n  <div class=\"hisop-grid\">\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Largest total horizontal angle accepted at row 1.\"><span class=\"hisop-sym\">\u03b8<sub>max<\/sub><\/span><span>Max. angle at the first row<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-any\"><input data-k=\"thetaMax\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Max. angle at the first row\"><span class=\"hisop-u__tag\">\u00b0<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"thetaMax\"><\/div>\n    <\/div>\n    <div class=\"hisop-field\">\n      <span class=\"hisop-label\" data-tip=\"Smallest angle accepted at the extreme seat of any row.\"><span class=\"hisop-sym\">\u03b8<sub>min<\/sub><\/span><span>Min. angle at the worst seat<\/span><\/span>\n      <div class=\"hisop-inputs\">\n        <span class=\"hisop-u u-any\"><input data-k=\"thetaMin\" data-u=\"m\" type=\"number\" step=\"any\" inputmode=\"decimal\" aria-label=\"Min. angle at the worst seat\"><span class=\"hisop-u__tag\">\u00b0<\/span><\/span>\n      <\/div>\n      <div class=\"hisop-hint\" data-hint=\"thetaMin\"><\/div>\n    <\/div>\n  <\/div>\n<\/fieldset>\n\n  <div class=\"hisop-outs\" aria-live=\"polite\">\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">R<\/span><span class=\"hisop-out__v\" data-out=\"R\">\u2014<\/span><span class=\"hisop-out__n\">Isopter radius<\/span><\/div>\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">P<\/span><span class=\"hisop-out__v\" data-out=\"P\">\u2014<\/span><span class=\"hisop-out__n\">Centre behind the line<\/span><\/div>\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">\u03b8<\/span><span class=\"hisop-out__v\" data-out=\"theta1\">\u2014<\/span><span class=\"hisop-out__n\">Angle at the centre<\/span><\/div>\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">\u03b8e<\/span><span class=\"hisop-out__v\" data-out=\"thetaE\">\u2014<\/span><span class=\"hisop-out__n\">Angle at the worst seat<\/span><\/div>\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">L_max<\/span><span class=\"hisop-out__v\" data-out=\"Lmax\">\u2014<\/span><span class=\"hisop-out__n\">Straight-row limit<\/span><\/div>\n    <div class=\"hisop-out\"><span class=\"hisop-out__k\">L_iso<\/span><span class=\"hisop-out__v\" data-out=\"Liso\">\u2014<\/span><span class=\"hisop-out__n\">Arc length between the ends<\/span><\/div>\n  <\/div>\n\n  <div class=\"hisop-msgs\" data-msgs><\/div>\n\n  <div class=\"hisop-canvas\">\n    <div class=\"hisop-canvas__bar\">\n      <div class=\"hisop-badges\">\n        <span class=\"hisop-badge hisop-badge--method\" data-badge=\"method\">Isopter arc<\/span>\n        <span class=\"hisop-badge hisop-badge--ok\" data-badge=\"state\">Within limits<\/span>\n      <\/div>\n      <div class=\"hisop-zoom\">\n        <button type=\"button\" data-zoom=\"out\" data-tab=\"iso\" aria-label=\"Zoom out\" data-tip=\"Zoom out\">\u2212<\/button>\n        <button type=\"button\" data-zoom=\"in\" data-tab=\"iso\" aria-label=\"Zoom in\" data-tip=\"Zoom in\">+<\/button>\n        <button type=\"button\" data-zoom=\"reset\" data-tab=\"iso\" aria-label=\"Reset view\" data-tip=\"Reset the view\">\u2922<\/button>\n      <\/div>\n    <\/div>\n    <div class=\"hisop-canvas__stage\" data-stage data-tab=\"iso\"\n      data-tip=\"Drag to pan. Scroll or pinch to zoom.\"><\/div>\n  <\/div>\n\n  <div class=\"hisop-actions\">\n    <button type=\"button\" class=\"hisop-btn\" data-export=\"dxf\" data-tab=\"iso\" data-tip=\"Download the plan as a CAD file (DXF R12, layers and real units).\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 3v12m0 0l-4-4m4 4l4-4M4 21h16\"\/><\/svg>Download DXF<\/button>\n    <button type=\"button\" class=\"hisop-btn\" data-export=\"pdf\" data-tab=\"iso\" data-tip=\"Open a printable report with the parameters, the diagram and the table.\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M7 3h7l4 4v14H7z\"\/><path d=\"M14 3v4h4M9 13h6M9 17h6\"\/><\/svg>View PDF<\/button>\n    <button type=\"button\" class=\"hisop-btn hisop-btn--ghost\" data-help data-tab=\"iso\" data-tip=\"Brief explanation of every parameter.\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M9.5 9a2.5 2.5 0 115 .5c0 1.5-2.5 2-2.5 3.5M12 17h.01\"\/><\/svg>Help<\/button>\n  <\/div>\n\n  <div class=\"hisop-results\">\n    <div class=\"hisop-results__head\">\n      <h4>Row-by-row results<\/h4>\n      <span class=\"hisop-results__sum\" data-sum><\/span>\n    <\/div>\n    <div class=\"hisop-scroll\">\n      <table class=\"hisop-table\">\n        <thead>\n          <tr>\n            <th>Row<\/th><th>R<\/th><th>L<\/th><th>\u03b8 center<\/th><th>\u03b8 worst<\/th><th>Seats<\/th><th>Status<\/th>\n          <\/tr>\n        <\/thead>\n        <tbody data-tbody><\/tbody>\n      <\/table>\n    <\/div>\n  <\/div>\n\n  <p class=\"hisop-note\">The drawing is a plan view; vertical sightlines, eye height and C values are outside the scope of this page.\n    Angles are total horizontal angles subtended by the line of interest.<\/p>\n<\/section>\n\n<!-- ========================================================== HELP -->\n<dialog class=\"hisop-dialog\" id=\"hisop-help-fan\" aria-labelledby=\"hisop-help-fan-t\">\n  <div class=\"hisop-dialog__head\">\n    <h3 id=\"hisop-help-fan-t\">Fan method \u2014 parameters<\/h3>\n    <button type=\"button\" class=\"hisop-dialog__x\" data-close aria-label=\"Close\">\u00d7<\/button>\n  <\/div>\n  <div class=\"hisop-dialog__body\">\n    <h4>Geometry<\/h4>\n    <dl class=\"hisop-dl\">\n      <div><dt>c<\/dt><dd>Stage opening or line of interest. The segment the audience has to see in full.<\/dd><\/div>\n      <div><dt>b<\/dt><dd>Distance from the line of interest to the first row.<\/dd><\/div>\n      <div><dt>d<\/dt><dd>Available length for the first row, measured along the arc. It fixes the half angle \u03b2.<\/dd><\/div>\n      <div><dt>m<\/dt><dd>Fan multiplier. The centre P sits m\u00b7c behind the line; a larger m flattens the fan.<\/dd><\/div>\n    <\/dl>\n    <h4>Seating<\/h4>\n    <dl class=\"hisop-dl\">\n      <div><dt>a<\/dt><dd>Seat pitch: centre-to-centre distance between two seats.<\/dd><\/div>\n      <div><dt>e<\/dt><dd>Half head width, used for the head-clearance check (sin \u03c6 \u2265 e\/a).<\/dd><\/div>\n      <div><dt>\u0394<\/dt><dd>Row depth, the distance from one row to the next.<\/dd><\/div>\n      <div><dt>N<\/dt><dd>Number of rows to generate.<\/dd><\/div>\n    <\/dl>\n    <h4>Criteria<\/h4>\n    <dl class=\"hisop-dl\">\n      <div><dt>\u03b8max<\/dt><dd>Maximum total horizontal angle accepted at the first row (110\u00b0 is usual for theater).<\/dd><\/div>\n      <div><dt>\u03b8min<\/dt><dd>Minimum angle accepted at the worst seat of any row.<\/dd><\/div>\n      <div><dt>R<\/dt><dd>First-row radius, from the fan centre to the centre of row 1.<\/dd><\/div>\n    <\/dl>\n    <h4>Reading the drawing<\/h4>\n    <dl class=\"hisop-dl\">\n      <div><dt>P<\/dt><dd>Fan centre. When it falls outside the frame the radius arrow points towards it.<\/dd><\/div>\n      <div><dt>\u03b8<\/dt><dd>Angle at the centre of the first row; \u03b8e marks the worst seat in the layout.<\/dd><\/div>\n      <div><dt>DXF<\/dt><dd>R12 file with layers OPENING, ROWS, SEATS, ANNOT, CONSTR and GHOST, drawn in meters or inches.<\/dd><\/div>\n    <\/dl>\n  <\/div>\n<\/dialog>\n\n<dialog class=\"hisop-dialog\" id=\"hisop-help-iso\" aria-labelledby=\"hisop-help-iso-t\">\n  <div class=\"hisop-dialog__head\">\n    <h3 id=\"hisop-help-iso-t\">Isopter arc \u2014 parameters<\/h3>\n    <button type=\"button\" class=\"hisop-dialog__x\" data-close aria-label=\"Close\">\u00d7<\/button>\n  <\/div>\n  <div class=\"hisop-dialog__body\">\n    <h4>Geometry<\/h4>\n    <dl class=\"hisop-dl\">\n      <div><dt>c<\/dt><dd>Field width or line of interest: touchline, sideline or the full length to be seen.<\/dd><\/div>\n      <div><dt>b<\/dt><dd>Distance from the line to the first row. With c it fixes the radius R and the angle \u03b8.<\/dd><\/div>\n      <div><dt>d<\/dt><dd>Available row length. The page compares it with L_max to decide between a straight row and the arc.<\/dd><\/div>\n      <div><dt>bc<\/dt><dd>Clearance line: a minimum distance to the line of interest (track, moat). Zero disables it.<\/dd><\/div>\n    <\/dl>\n    <h4>Seating<\/h4>\n    <dl class=\"hisop-dl\">\n      <div><dt>a<\/dt><dd>Seat pitch: centre-to-centre distance between two seats.<\/dd><\/div>\n      <div><dt>e<\/dt><dd>Half head width, used for the head-clearance check (sin \u03c6 \u2265 e\/a).<\/dd><\/div>\n      <div><dt>\u0394<\/dt><dd>Row depth. Rear rows are concentric offsets of the same arc.<\/dd><\/div>\n      <div><dt>N<\/dt><dd>Number of rows to generate.<\/dd><\/div>\n    <\/dl>\n    <h4>Criteria<\/h4>\n    <dl class=\"hisop-dl\">\n      <div><dt>\u03b8max<\/dt><dd>Maximum total horizontal angle accepted at the first row.<\/dd><\/div>\n      <div><dt>\u03b8min<\/dt><dd>Minimum angle accepted at the worst seat of any row.<\/dd><\/div>\n      <div><dt>R<\/dt><dd>Isopter radius, R = [b\u00b2 + (c\/2)\u00b2] \/ (2b).<\/dd><\/div>\n      <div><dt>P<\/dt><dd>Distance from the line of interest to the isopter centre: P = R \u2212 b.<\/dd><\/div>\n    <\/dl>\n    <h4>The decision<\/h4>\n    <dl class=\"hisop-dl\">\n      <div><dt>Rule<\/dt><dd>A straight row is used when d \u2264 L_max and the worst seat still reaches \u03b8min. Otherwise the isopter arc is drawn.<\/dd><\/div>\n      <div><dt>L_iso<\/dt><dd>Arc length from one end of the line of interest to the other. If d is larger, the arc is trimmed and a warning is shown.<\/dd><\/div>\n    <\/dl>\n  <\/div>\n<\/dialog>\n<\/div>\n\n\t\t<\/div>\n\t<\/main>\n\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-2405","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ozzmx.com\/es\/wp-json\/wp\/v2\/pages\/2405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ozzmx.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ozzmx.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ozzmx.com\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ozzmx.com\/es\/wp-json\/wp\/v2\/comments?post=2405"}],"version-history":[{"count":1,"href":"https:\/\/www.ozzmx.com\/es\/wp-json\/wp\/v2\/pages\/2405\/revisions"}],"predecessor-version":[{"id":2406,"href":"https:\/\/www.ozzmx.com\/es\/wp-json\/wp\/v2\/pages\/2405\/revisions\/2406"}],"wp:attachment":[{"href":"https:\/\/www.ozzmx.com\/es\/wp-json\/wp\/v2\/media?parent=2405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}