The eye that moves

A straight line in a scroll is a hyperbola

Under a pushbroom the image of a straight world line is a Möbius function of the paper coordinate, which is a rectangular hyperbola. It is straight exactly when the line holds its depth — so a curve in a handscroll is a depth signal rather than a stylistic one, and the sag is computable in pixels.

Worth reading first: A scroll is a camera that moves · Where parallel lines meet.

A pinhole camera has one property that everything else about it is downstream of: it sends straight lines to straight lines. Every other surface this site has drawn on gives that up — a cylinder, a sphere, a fisheye each bow their lines in a way that can be measured — and so does a real lens, by an amount that can be fitted from straightness alone.

A scroll gives it up too, and for a reason none of those share. The surface is flat and the optics are ideal. What bends the line is that the eye moved while drawing it.

A straight line, drawn by a scroll, sags 9.6 pxAbove: a straight world line running from 2 m to 15 m of depth. Its image is a hyperbola — the algebra says a Möbius function of the paper coordinate, and the sampled projection agrees with that closed form to 3e-14 px. Below, the control: the same line held at constant depth images straight to 0e+0 px. What bends a line in a scroll is changing depth, and nothing else.a receding straight line, and the chord it is not9.59 px of sagthe control — the same line at constant depth0e+0 pxno single viewpoint — the rays miss by 6.1 ma straight line's image is a hyperbola
Fig. 1 A straight world line running from 2 m to 15 m of depth, drawn by a scroll, with the chord it would be if the projection were linear. The sag is 9.57 px. Below it the control: the same line held at constant depth, which images straight to 0e+0 px. What bends a line in a scroll is changing depth and nothing else.

The algebra is two substitutions

Take a world line, parameterised affinely: P(λ)=A+λDP(\lambda) = A + \lambda D. Its three coordinates are affine in λ\lambda, so from the previous essay’s two formulas:

u=u0+s(Ax+λDx)u = u_0 + s(A_x + \lambda D_x)

which is affine in λ\lambda and therefore invertible: λ\lambda is affine in uu, provided the line crosses scans at all, which is Dx0D_x \neq 0. Substituting into the other coordinate,

v=v0+f(heAyλDy)Az+z0+λDzv = v_0 + \frac{f\,(h_e - A_y - \lambda D_y)}{A_z + z_0 + \lambda D_z}

gives a ratio of two affine functions of λ\lambda, hence of uu. A ratio of two affine functions is a Möbius transformation, and the graph of one is a rectangular hyperbola with a vertical and a horizontal asymptote.

That is the whole derivation and it has a sharp corollary sitting in the denominator. The image is affine in uu — a straight line — exactly when Dz=0D_z = 0, which is when the world line holds its depth. There is no other case. A line at constant depth is drawn straight however it runs; a line that changes depth is drawn curved however slightly.

Two routes, because one is not a check

The site’s habit is that a closed form and a computation are two routes to the same number, and that agreeing is the result. So the hyperbola above is not merely asserted: lineImageCoefficients derives α,β,γ\alpha, \beta, \gamma from the world line and the scroll’s parameters, and assertTheClosedFormMatchesTheProjection evaluates it at each sampled point’s own uu and compares with the projected vv.

They agree to 2.8×10142.8 \times 10^{-14} px across the samples. If the model in pushbroom and the algebra above had disagreed — a sign, an axis, a standoff added on the wrong side — the figure would still have drawn a plausible curve under a plausible caption, and nothing else in the fleet would have noticed.

How far a scroll bends a straight lineThe sag against the depth range the line crosses, from 2 m. It is zero at the origin and grows without bound; the flat control is the line along the bottom, at 0e+0 px across the whole sweep. Bending is a response to depth change, not a property of the medium.051015200102030metres of depth the line crossessag from the chord, pxa line that recedesthe control — constant depthsampled from the projection, not from the closed formthe control is exactly zero
Fig. 2 The sag against the depth range the line crosses. It is zero at the origin and grows without bound, and the control — the same line held at constant depth — is the flat line along the bottom, at 0e+0 px across the whole sweep. A single measurement of one line would be an anecdote; this is the law, and the control is in the same picture rather than in a different essay.

What the curvature is worth as a signal

Because straightness fails exactly when depth changes, the curvature of a drawn line in a scroll carries information, and it is worth asking how much.

The sag over a span is set by the range of 1/(Zzc)1/(Z - z_c) the line crosses. Two consequences fall out. A line whose depth changes a little is drawn nearly straight — the sag is first order in the depth change, so a courtyard wall running slightly away from the track bows by a fraction of a brush width. And a line whose depth changes a great deal is drawn very curved, without limit: there is no maximum sag, because the near end can be brought arbitrarily close to the track.

So a scroll’s picture of a road running away into the distance is a curve that starts steep and flattens. A reader who knew the scroll’s compression and its standoff could read the road’s depth profile off the curvature directly. Nobody does that, and the point is not that anybody should — it is that the information is present and exact, which is not obvious from the description “the perspective is inconsistent”.

The rays of 27 m of scroll, and the point they miss by 8.57 mPlan of one section. Each ray leaves the eye at its own column, so the eyes lie along a track rather than at a point. The circle is the least-squares centre drawn at the radius of its own miss — 8.57 m, which the closed form puts at 8.57 m, the standard deviation of a track that long. A single column of the same scroll fits exactly.the best point, missed by 8.57 m27 m of the eye's trackno single viewpoint — the rays miss by 8.57 mthe eyes are a track, not a point
Fig. 3 The reason there is no consistent perspective to be inconsistent about. Each ray leaves the eye at its own column, so what a section of the picture is drawn from is a track rather than a point — 7.97 m of miss over 26 m of travel. That is the next essay; here it explains why the curvature above is not an error to be corrected.

The comparison with a curved surface, which is not the same failure

Two of this site’s fields already contain pictures whose straight lines are curves, and it is worth being exact about how this differs from both, because the symptom is identical and the cause is not.

A curved picture surfacea cylinder, a fisheye — bends lines because the surface the projection lands on is not flat. The projection still has one centre; every ray still passes through the eye; the picture is still a projection, of the same scene, onto a different surface. Unbending it is a re-projection and needs nothing but the surface’s own map.

A real lens bends them because the optics are imperfect, and there the departure is a polynomial in the radius, recoverable by fitting, and correctable to the point where the residual is below a pixel.

A scroll bends them because there is no single centre for the rays to pass through. That failure is not undoable by any re-projection whatsoever, because the operation that would undo it would need to know each point’s depth — and the picture does not carry depth. This is the same structural difference the refraction field found between a slab of glass and a body of water: one displaces points in a way a warp can undo, the other does not, and the test is whether the displacement depends on how far away the point is.

The same 100° view, projected onto a plane and onto a cylinderOn the plane every straight line stays straight (1e-13 px of bend) and the edges stretch; on the cylinder the stretch is even and straight lines bow by up to 652 px.flat picture plane — straight lines stay straightcylindrical picture surface — even stretch, bowed linesone scene, two picture surfacesneither is the distorted one
Fig. 4 The other family of curved lines, for contrast: the same view projected onto a plane and onto a cylinder. The plane keeps its lines straight and stretches its edges; the cylinder bows them and spreads the stretch evenly. Both remain projections from one point, which the scroll is not.

The special cases are the ones worth checking

Three configurations sit at the edges of the derivation and each is a check rather than a curiosity.

A line parallel to the eye’s track and at constant depth is drawn straight, exactly, because Dz=0D_z = 0. This is the roofline of a long wall running beside the track, and it is drawn as a straight horizontal — which is why the convention works at all for architecture, and why a scroll of a riverbank does not look obviously wrong at first reading.

A line perpendicular to the track, running directly away from the eye, has Dx=0D_x = 0: every one of its points is in the same scan. It images to a single vertical segment. That is a genuine degeneracy of the model and a real property of the object — a scroll draws a road running straight away from the viewer as a line with no length along the roll at all, which is a thing painters solved by never quite doing it.

A line that crosses the eye’s own track has a scan at which the depth denominator would vanish, and the projection refuses it. That is the same refusal lib/camera.js makes for a point behind the eye, and it is a refusal rather than a wrapped-around point appearing somewhere plausible in the picture.

A scroll in plan: the eye travels, and images one line at a timeThe eye runs along the track at the bottom. Each position images the single vertical plane it is level with, so a world point is drawn by exactly one position of the eye — the one at its own x. The paper advances 26 px for every metre of travel whatever the scene does, which is why the roll is a map along its length.the eye's trackthe eye at x = 1.1 mevery point is drawn by the one position of the eye that is level with itplan — the eye's track and the scans it makes28 m of travel
Fig. 5 Where the three cases live. A line along the track at constant depth crosses every scan at the same height and is drawn straight; a line running away crosses one scan and collapses; a line crossing the track has a scan at which it is at the eye. The first is the common case in a scroll of a riverbank and the reason the convention reads naturally.

The asymptotes, and what each of them is

A rectangular hyperbola has two asymptotes and both of them mean something here, which is the sort of thing that makes a closed form worth deriving rather than merely fitting.

The horizontal asymptote is where the image goes as u±u \to \pm\infty: the limit of the Möbius function, α\alpha. It is the height at which the line’s image settles as the eye travels far enough along the track, and it is the scroll’s version of a vanishing point. Not a point where parallel lines meet — parallel lines in a scroll do not meet, because along the roll the projection is parallel and parallel projections send parallel to parallel — but a height that the image of any given line approaches without reaching. Every line with the same ratio Dy/DzD_y/D_z shares it.

The vertical asymptote is at the uu where the denominator vanishes, which is the scan at which the world line crosses the eye’s own track. It is the refusal described above, showing up in the algebra as an infinity rather than as an exception. A scroll of a scene the track passes through rather than beside would have real lines whose images run off the top and bottom of the silk, and the reason is a pole in a Möbius function.

The two together are a compact statement of the object: a scroll’s picture of a straight line has a horizon it approaches and a place it blows up, and neither is a property of the line.

A family of parallel ground lines at 30°, and where they meetAll five lines pass through one point on the horizon, off the edge of the frame at x = 1464. The point fitted from the drawn lines agrees with the one computed from the direction to 1e-11 px, and the fit's own residual is 2e-12 px.horizon — the image of the line at infinityvanishing point at x = 1464 — off the framecorrect from 26 cm, at 160 mm wide34° across
Fig. 6 The pinhole’s answer to the same question, for contrast. A family of parallel ground lines converges on one point of the horizon, and the point is the image of a direction. A scroll has no such point: along the roll it is a parallel projection, so parallel lines are drawn parallel and each one has its own asymptote height.

Recovering the scroll from the scroll

The site’s standing habit is the round trip: build a picture from a stated camera, then recover the camera from the picture and compare. It is worth asking whether a scroll admits one, and it does, on rather generous terms.

The image of one straight world line, sampled at enough points, determines the Möbius coefficients — three numbers up to scale, so three marks along a drawn curve suffice in principle and more make it a fit rather than a solve. Those three coefficients are built out of the scroll’s compression ss, its focal length ff, its standoff z0z_0 and the line’s own direction and position. One line does not separate them.

Two lines with different depth profiles do better, and enough lines pin the scroll’s own parameters up to a scale ambiguity of exactly the kind a single view always has: a scroll of a scene twice as large, painted at half the compression from twice the standoff, produces the identical picture.

So the recovery works and returns what it should return, which is a family rather than a number. That is the same answer this site’s camera recovery gives in one dimension fewer, and it is worth having stated because the alternative belief — that a scroll’s geometry is not determinate enough to recover anything from — is false and is the belief the phrase shifting perspective tends to leave behind.

A box drawn from a known camera, and the camera recovered from the drawingThree vanishing points found from the twelve drawn edges alone give back the focal length to 4e-15 relative.recovered principal pointused to drawrecoveredgapfocal length853.90853.904e-15principal x345.0345.02e-12angle44.0°44.0°correct from 20 cm, at 160 mm wide44° across
Fig. 7 The round trip on the machinery this site was built around: a box drawn from a known camera, and the camera recovered from the twelve drawn edges alone. A scroll admits the same operation on its curves rather than its straight edges, and returns its parameters up to the one scale ambiguity every single view has.

What this does to the invariant

The site’s first field is about the one quantity a projection does not destroy, and it is worth asking what a pushbroom does to it.

The cross-ratio survives a projection through a centre because four collinear points image to four collinear points and the projective relationship between the line and its image is a homography. Under a pushbroom, four collinear world points image to four points on a hyperbola, not on a line. So the question does not even arise in the usual form: there is no image line whose cross-ratio could be compared with the world line’s.

This is the same shape of finding the refraction field recorded, where four points on a line through water are not collinear in the picture, so the invariant has nothing to be invariant on. The two cases arrive at it from opposite directions — there the medium bends the rays, here the eye moves — and the consequence is identical and is worth stating in one sentence: the cross-ratio is a statement about projections through a centre, and a system without a centre is outside the theorem rather than in violation of it.

What does survive, and it is not nothing, is the ratio along the roll. Four points spaced along the eye’s track are drawn at spacings in the same ratio, exactly, because that map is a scaling — which is a stronger invariant than the cross-ratio and holds in one direction only. The fourth essay in this field measures it.

Four points on a line, before and after a projectionLength and the ratio of lengths do not survive the projection; the cross-ratio does, agreeing to 0e+0 relative.horizonABCDon the groundin the picturelength AB1.00011.3930ratio AB:CD0.56670.6837cross-ratio1.31681.3168correct from 26 cm, at 160 mm wide34° across
Fig. 8 The invariant the pinhole keeps, for reference. A pushbroom does not destroy it so much as decline to offer it: four collinear world points do not image to a line at all, so there is no image cross-ratio to compare. Along the roll a scroll keeps something stronger — the ratio itself.

Why the convention survives the curvature

There is a practical question underneath all of this, and it has a numerical answer. If a scroll bends every receding line, why does a scroll not look bent?

Three reasons, and the first two are about what is drawn rather than about the drawing.

Most of the long lines in a Chinese handscroll hold their depth. A riverbank running beside the track, the eaves of a hall presented broadside, the line of a wall along a terrace — these are the constant-depth case, and they are drawn straight, exactly. The subject matter and the convention fit each other, which is not a coincidence: a system is developed on the things it is used to draw.

The lines that do recede are short. A pavilion is a few metres deep and a scroll is hundreds of metres long in world terms, so a receding eave crosses a depth range that is tiny compared with the scene. The sag is first order in that range, so it is well under a brush width.

And the third reason is the one worth measuring. The sag is proportional to the span on the paper as well as to the depth range, and the span of any one receding line in a scroll is small — a pavilion occupies a few centimetres of a five-metre roll. The figure at the top of this essay draws a line spanning most of the paper, which is a case a scroll never contains, and it does so deliberately: a figure of the honest case would be a figure of a straight line.

So the curvature is real, exact, and mostly below the threshold at which anything is visible — which is the same relationship a real lens’s distortion has to a photograph, arrived at from a completely different direction, and with the same moral. A departure that is invisible is not a departure that is absent, and the difference matters the moment anybody tries to measure something.

The bend is a function of one distanceA line through the principal point is straight to 3e-14 px, whatever the coefficient. Everything else bends, and how much is decided by how far the line passes from that point — not by where it is in the frame.0510050100150how far the line passes from the principal point (px)greatest departure of the line from its own chord (px)through the principal point: exactly zerok₁ = -0.18013.6 px at 163 px off
Fig. 9 The same relationship in the lens field: a departure from straightness that a viewer does not notice and a fit recovers immediately. The scroll’s version is not correctable, because undoing it would need a depth the picture does not carry — but the visibility threshold is the same one, and both are below it in ordinary use.

What the sag is in a reader’s terms

One number to end on, because the site’s habit is to convert a pixel measurement into something a reader can hold.

At the compression the figures here use, a straight world line crossing thirteen metres of depth sags 9.57 px over a span of about 620 px on the paper. At the width these figures are laid out — 160 mm — that is a departure of roughly 2.5 mm from a straight edge laid on the picture, over a span of 16 cm.

That is small enough to be invisible unless looked for and large enough that a ruler finds it immediately, which is a good description of the whole convention: nothing about a handscroll looks wrong, and almost nothing about it is a projection.

Where this sits in the field

What each drawing system preservesEvery cell is read out of the system's own map rather than typed: the centre is fitted from its rays, measure is the site's own midpoint test, diminution is the drawn size of a fixed object at two depths, bounded depth asks whether infinite depth lands in finite page, and straightness is the sag of a receding line. Only perspective has a centre, and it is the one system with no true measure. No row has both.a centretrue measurediminutionbounded depthstraight linesperspectivehandscrollisometricdimetrictrimetriccavaliercabinetelevationfilled means the system keeps itmeasured from each system's own projectionno row is filled in both of the first two
Fig. 10 The last column of the field’s table is this essay: the sag of a receding line, measured from its own chord. Seven of the eight systems keep straight lines straight and the scroll does not, and it is the only one whose reason is the eye rather than the surface.
One room at 120° across, cast onto six picture surfacesEach panel holds the same angular width of the same scene. The flat plane keeps every straight line straight and pays for it at the edges; the five curved surfaces bend the ground lines by 3.5% to 6.0% of their own length.plane — bend 0.0%cylinder — bend 6.0%stereographic — bend 3.5%equidistant — bend 4.5%equal-area — bend 5.1%equirect. — bend 5.7%120° across in every panelsame scene, same angle, six surfaces
Fig. 11 And the other family of curved lines, for contrast — a projection from one point onto a surface that is not flat. Every one of these still has a station point, so its curvature is undoable by a re-projection. A scroll’s is not, because undoing it would need a depth the picture does not carry.

What links here

Computed from the collection, not written here: the essays that point at this one.

Shares its objects with

Essays that name at least two of the same things, and that neither author linked.

Named objects

A flat tag is an object no other essay names yet.

ConicCylindrical projectionDemonstrationForeshorteningHandscrollMoving viewpointPicture surfacepoint at infinityProjective invariantPushbroom