Here's another way.. (Pivot set to '3D Cursor', Orientation 'Local'):
- Rotate your ref by 45, and align a sphere to it, poles up and down. Put the Cursor at its center. (I did mine in Edit mode, so I had to reposition the origin of the sphere to the cursor:
- GZ (Local) extend the pole vertex to the reference's point. You may need to rotate the geometry to get a match all round.
- Alt - select a few edge loops, and CtrlX dissolve them
- After CtrlShiftB bevelling the pole vertex a fraction, CtrlR replace the loops.
You may need to do a tiny bit of vertex-smoothing, edge-sliding..
Here is another solution. It's more "mathematically precise" but requires a few more steps.
Start with a plane.
Bevel all but 1 corner (cmd+shift+B).
- Tap V to affect vertices instead of edges if it's not already.
- Tap C to use clamping so the size of each bevel uses exactly half of the edge length.
- Make sure you use an EVEN number of segments (scroll wheel or S+mouse to change) so there is a single vertex at the opposite end of the non-beveled vertex.
- There will be 2 overlapping vertices. Use merge by distance to remove them.
- Remove vertices using dissolve until the shape is half the shape it was before.
- Drop an empty and rotate it by 45deg on the Z-axis.
- Apply a Screw modifier to the plane.
- Set the axis to Y or X (depending on which vertex wasn't beveled)
- Set Axis Object to the Empty.
- Make sure you check the "Merge" option to get a clean result.
Optional: Apply the Screw modifier to permanently set the solid.
Unedited video version: https://youtu.be/tOCXQz4tehE