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−2.00 −1.00 × 180 combined with plano −0.75 × 045
Power vectors, and the factor of two that is the trap
- 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
What happens as the second axis rotates
| First | Second | Angle between | Result | Resultant cylinder |
|---|---|---|---|---|
| −2.00 −1.00 × 180 | plano −0.75 × 180 | 0° | −2.00 −1.75 × 180 | 1.75 D, the arithmetic sum |
| −2.00 −1.00 × 180 | plano −0.75 × 015 | 15° | −2.03 −1.69 × 6.4 | 1.69 D |
| −2.00 −1.00 × 180 | plano −0.75 × 045 | 45° | −2.25 −1.25 × 18.4 | 1.25 D |
| −2.00 −1.00 × 180 | plano −0.75 × 075 | 75° | −2.62 −0.51 × 23.5 | 0.51 D |
| −2.00 −1.00 × 180 | plano −0.75 × 090 | 90° | −2.75 −0.25 × 180 | 0.25 D, the difference |
| plano −1.00 × 180 | plano +1.00 × 180 | 0°, opposite signs | plano, no cylinder | 0.00 D, and no axis |
The axis wrap, and what a one-argument arctangent does to it
| Two plano-cylinders combined | Resultant J0 | Correct axis | Naive arctan gives | Error |
|---|---|---|---|---|
| −1.00 × 180 with −0.75 × 045 | +0.500 | 18.4° | 18.4° | None |
| −1.00 × 180 with −0.75 × 135 | +0.500 | 161.6° | −18.4° | 180° — visibly wrong, an axis cannot be negative |
| −2.00 × 090 with −0.75 × 045 | −1.000 | 79.7° | −10.3° | 90° |
| −2.00 × 090 with −0.75 × 080 | −1.352 | 87.3° | −2.7° | 90° |
| −2.00 × 090 with −0.75 × 135 | −1.000 | 100.3° | 10.3° | 90° — and this one looks like a real axis |
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
- El Oculista. Refraction: Change in Notation (Sphero-cylindrical, Bicylindrical, Vectorial). oftalmologiav3.eloculista.es. Accessed 10 October 2026.
- 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.)
- 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.)
- 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/
