Obliquely Crossed Cylinders Calculator

Obliquely Crossed Cylinders Calculator

Two sphero-cylinders at any two axes, combined into one by power-vector addition and returned in minus-cylinder form. −2.00 −1.00 × 180 over plano −0.75 × 045 is −2.25 −1.25 × 018.

Two prescriptions → one

Power vectors
The sphere of the first lens or refraction. Either cylinder form may be entered — the arithmetic does not care — but the RESULT is always returned in minus-cylinder form, so a pair of plus cylinders comes back transposed. That is correct and is the transposition of what you might have expected.
The cylinder of the first lens, with its sign. Zero is allowed: a sphere combined with a cylinder is a legitimate case and the axis of the sphere is ignored.
The axis of the first cylinder, 1 to 180. The axis is the meridian in which the cylinder has NO power.
The sphere of the second lens or refraction. Use zero for a plano-cylinder — an over-refraction cylinder, a cross cylinder, or the residual cylinder of a toric contact lens.
The cylinder of the second lens, with its sign. The two cylinders may have opposite signs; power vectors handle that case, where the classical crossed-cylinder formula is written for two cylinders of one sign.
The axis of the second cylinder, 1 to 180. Set it equal to the first axis and the two cylinders add arithmetically; set it 90° away and the result is a sphero-cylinder you can check by transposition. Anything between is the oblique case this page exists for.
1.25D of resultant cylinderExample

−2.00 −1.00 × 180 combined with plano −0.75 × 045

Advertisement

Power vectors, and the factor of two that is the trap

M = S + C⁄2  ·  J0 = −(C⁄2)·cos 2α  ·  J45 = −(C⁄2)·sin 2α  →  add  →  C = −2√(J0² + J45²), α = ½·atan2(J45, J0), S = M − C⁄2
why vectors at all
a sphero-cylinder is three numbers of which one is an ANGLE, and angles do not add. M, J0 and J45 are three numbers that do: M is the spherical equivalent, J0 is the astigmatism along 0 and 90, and J45 the astigmatism along 45 and 135. Two prescriptions combine by adding the three components separately, and that is the whole method
THE FACTOR OF TWO
the axis appears doubled inside the cosine and the sine, and it has to. A cylinder axis is modulo 180° — axis 10 and axis 190 are the same lens — while a vector direction is modulo 360°. Doubling the axis maps the first space onto the second one-to-one. The published statement of this is that the vector’s orientation in the J0/J45 plane “is double the minus-cylinder axis”
and why atan2 and not atan
going back, the vector angle has to be HALVED, and halving requires knowing which of the two possible double angles you have. atan(J45 ÷ J0) cannot distinguish (J0, J45) from (−J0, −J45), so it returns the double angle modulo 180° and halving it gives the axis modulo 90° — the COMPLEMENT, for any axis over 90. One source read notes that the arctangent must be taken over the full (−π, π), which is exactly what the two-argument form does. The proof behind this page checks every one of the 180 integer axes
the spherical equivalent is conserved
M adds arithmetically and nothing else in the calculation touches it, so the spherical equivalent of the result is always the sum of the two inputs’ spherical equivalents. At the defaults, −2.50 + −0.375 = −2.875 D. That is the cheapest check on an answer from this page, and it is also why a cross cylinder of the “+X over −2X” form leaves the sphere alone
the classical treatment, and the corroboration
the older published route for two cylinders of one sign is C² = A² + B² + 2AB·cos 2a, sin 2a′ = (B÷C)·sin 2a, and Snew = (A + B − C)⁄2 + S₁ + S₂, with a the angle between the axes. It shares no step with the power-vector route, and the proof behind this page asserts the two agree over a sweep of axes and cylinder pairs. That agreement is the corroboration for both, because the source that prints the classical form warns that its own content may contain mistakes

Worked example

−2.00 −1.00 × 180 combined with plano −0.75 × 045
First lens. M = −2.00 + (−1.00⁄2) = −2.50; 2α = 360°, so J0 = −(−0.50)·cos 360° = +0.500 and J45 = 0.000
Second lens. M = 0 + (−0.75⁄2) = −0.375; 2α = 90°, so J0 = −(−0.375)·cos 90° = 0.000 and J45 = −(−0.375)·sin 90° = +0.375
Add. M = −2.875, J0 = +0.500, J45 = +0.375
Cylinder. √(0.500² + 0.375²) = 0.625, so C = −2 × 0.625 = −1.25 D
Axis. atan2(0.375, 0.500) = 36.870°, halved is 18.4°. A one-argument arctangent happens to give the same answer here, because the resultant J0 is positive. Make the first cylinder −2.00 × 090 and the second −0.75 × 135 and J0 becomes −1.000: the correct axis is then 100.3°, and a naive arctangent returns 10.3° — a plausible axis, and 90° wrong
Sphere. S = M − C⁄2 = −2.875 − (−0.625) = −2.25 D. So the combination is −2.25 −1.25 × 018, or +−3.50 +1.25 × 108 in plus-cylinder form
Check it against the classical formula. A = 1.00, B = 0.75, a = 45° so 2a = 90° and cos 2a = 0: C = √(1 + 0.5625) = 1.25, which agrees exactly
Check the spherical equivalent. −2.25 + (−1.25⁄2) = −2.875, the sum of the two inputs' equivalents. Nothing in the vector addition can move it
And the degenerate cases. Put both cylinders at 180 and −1.00 plus −0.75 gives −1.75 × 180 arithmetically. Put the second at 090 and −2.00 −1.00 × 180 with −1.00 × 090 becomes a pure sphere of −3.00 — and the axis row disappears, because a zero cylinder has no axis
Advertisement

What happens as the second axis rotates

FirstSecondAngle betweenResultResultant cylinder
−2.00 −1.00 × 180plano −0.75 × 1800°−2.00 −1.75 × 1801.75 D, the arithmetic sum
−2.00 −1.00 × 180plano −0.75 × 01515°−2.03 −1.69 × 6.41.69 D
−2.00 −1.00 × 180plano −0.75 × 04545°−2.25 −1.25 × 18.41.25 D
−2.00 −1.00 × 180plano −0.75 × 07575°−2.62 −0.51 × 23.50.51 D
−2.00 −1.00 × 180plano −0.75 × 09090°−2.75 −0.25 × 1800.25 D, the difference
plano −1.00 × 180plano +1.00 × 1800°, opposite signsplano, no cylinder0.00 D, and no axis
Every result is this page’s own arithmetic, rounded to the two decimal places a prescription is written in. The two ends are the cases a reader can check without this page: at 0° the cylinders add, at 90° they subtract and the resultant axis belongs to whichever was larger. Everything between needs the vector sum, and notice that the SPHERE moves as the axis rotates even though neither input sphere changed — the spherical equivalent is fixed at −2.875 D in every row, so a smaller cylinder has to come with a more minus sphere.

The axis wrap, and what a one-argument arctangent does to it

Two plano-cylinders combinedResultant J0Correct axisNaive arctan givesError
−1.00 × 180 with −0.75 × 045+0.50018.4°18.4°None
−1.00 × 180 with −0.75 × 135+0.500161.6°−18.4°180° — visibly wrong, an axis cannot be negative
−2.00 × 090 with −0.75 × 045−1.00079.7°−10.3°90°
−2.00 × 090 with −0.75 × 080−1.35287.3°−2.7°90°
−2.00 × 090 with −0.75 × 135−1.000100.3°10.3°90° — and this one looks like a real axis
The sign of the RESULTANT J0 is what decides whether a one-argument arctangent fails, and not either input axis — which is why probing either side of 90° on the inputs does not catch it. Where the resultant J0 is positive the naive answer is either right or visibly absurd, as in the second row, because an axis cannot be negative. Where J0 is negative the naive answer is 90° out, and in the last row it comes back as 10.3°: a plausible axis, on a cylinder that is really at 100.3°, with nothing in the output to say so. The proof behind this page asserts the round trip for all 180 integer axes against a grid of sphere and cylinder pairs.

Angles do not add, so the prescription is turned into three numbers that do

Two sphero-cylindrical prescriptions in front of one eye — a spectacle lens and an over-refraction, a toric contact lens and its residual cylinder, a trial frame with two cylinders in it — combine into a single sphero-cylinder. If the two axes happen to coincide the cylinders simply add; if they are 90° apart they subtract. At any other angle neither works, because a prescription contains an angle and angles cannot be averaged or summed.

The modern treatment solves that by re-expressing the prescription as three quantities that do add: M, the spherical equivalent, which is the sphere plus half the cylinder; J0, the astigmatism aligned with the horizontal and vertical meridians; and J45, the astigmatism aligned with the two obliques. Both sources read print the same three expressions, and a third describes them in words — J0 is half the power difference between the 0° and 90° meridians, J45 half the difference between 45° and 135°. The addition is then component by component, and the result converts back.

The factor of two on the axis is where implementations go wrong, and it goes wrong in a way that looks right. A cylinder axis lives modulo 180°; a vector direction lives modulo 360°. Doubling the axis is what makes the correspondence one-to-one, and the published statement is that the vector’s orientation is double the minus-cylinder axis. Going back, the angle must be halved — and a one-argument arctangent has already lost the information needed to halve it correctly. For any resultant whose J0 is negative it returns the complement: a cylinder genuinely at 100.3° comes back as 10.3°, which is a perfectly plausible axis and will not look wrong to anyone. This page uses a two-argument arctangent, which keeps the quadrant, and its proof asserts the round trip for all 180 integer axes.

Three things are checked rather than asserted. The result does not depend on which prescription is entered first, because addition commutes — and that is the symmetry worth testing, since the equal-axis case is exactly where every wrong version agrees. Two cylinders at the same axis add arithmetically, and two at 90° give a sphero-cylinder that transposition verifies independently. And the whole calculation is run a second way, through the classical crossed-cylinder formula that predates power vectors and shares none of their steps; the two agree across a sweep of axes and cylinder pairs, which is how the one source that warns about its own reliability was corroborated. For the power this result has in one chosen meridian, see the oblique meridian page; for the single number it is often summarised by, the spherical equivalent.

Frequently asked questions

How do you combine two cylinders at different axes?

Convert each prescription to power vectors — M = sphere + cylinder/2, J0 = −(cylinder/2)·cos 2×axis, J45 = −(cylinder/2)·sin 2×axis — add the three components, then convert back with cylinder = −2√(J0² + J45²) and axis = half the two-argument arctangent of J45 over J0. −2.00 −1.00 × 180 with plano −0.75 × 045 gives −2.25 −1.25 × 018.

Why is the axis doubled in the formula?

Because a cylinder axis is modulo 180° while a vector direction is modulo 360°. Axis 10 and axis 190 are the same lens, so without doubling the mapping would not be one-to-one. Doubling fixes that, and the published description is that the vector’s orientation is double the minus-cylinder axis.

Why does this need atan2 rather than atan?

Because halving the doubled angle requires knowing its quadrant, and a one-argument arctangent cannot tell (J0, J45) from (−J0, −J45). Wherever the resultant J0 is negative it is 90° out: a cylinder really at 100.3° comes back as 10.3°. The wrong answer is a plausible axis, which is why the error survives casual checking.

Does the order of the two prescriptions matter?

No, and the proof behind this page asserts it over eight input sets rather than at one. Addition commutes, so swapping the two lenses gives the identical sphere, cylinder and axis. That is the symmetry worth testing, because at the degenerate equal-axis case every incorrect implementation agrees too.

Why is the answer always in minus-cylinder form?

Because the back-conversion takes the negative square root. The positive root with the axis 90° away is the same lens in plus-cylinder form, and both are printed. So two plus cylinders entered here come back transposed — which is the convention working, not an error.

Related calculators

References

  1. El Oculista. Refraction: Change in Notation (Sphero-cylindrical, Bicylindrical, Vectorial). oftalmologiav3.eloculista.es. Accessed 10 October 2026.
  2. Czech Technical University in Prague, Faculty of Biomedical Engineering. Refrakční vady — teoretická analýza [Refractive errors — a theoretical analysis], course document op3v.fbmi.cvut.cz. Accessed 10 October 2026. (Prints M, J0 and J45 and their inverse, attributing the notation to Thibos, Wheeler and Horner 1997.)
  3. Sphero-cylindrical Refraction with Spherical Lenses. Doctoral thesis, The Ohio State University [etd.ohiolink.edu]. Accessed 10 October 2026. (Defines J0 as half the power difference between the 0 and 90 degree meridians and J45 as half the difference between 45 and 135, and states that the vector’s orientation in that plane is double the minus-cylinder axis.)
  4. Optician’s Friend. Optics Study Guide. opticiansfriend.com. Accessed 10 October 2026. (The page states that its information may contain mistakes and should be independently verified, so every formula taken from it here is corroborated from a second source.)

Not medical advice. For healthcare professionals and education. Reference intervals vary by laboratory and assay — always use your own laboratory's. Never base a dose or a treatment decision on this page alone. Full disclaimer at calcengines.com/disclaimer/