It is almost the same as you do, except that by turning the heading/bearing dial until the torpedo gyro angle shows 0, you take range out of the equation. As it is only needed to correct for the straight and then curved path the torpedo takes after leaving the tube. Range is also needed to calculate the spread for a salvo on a target of certain length. But if you want to fire single shots then range is no longer a factor if torpedoes move out straight ahead.
When positioned perpendicular across the target track you get the best benefit of their broadside showing the largest angle to hit into. Less chance of a miss compared to bow-on or stern-on shots. You can orient the uboat to be off from perpendicular if you wish, but then it is best to set the AOB off as much from 90 degrees as you are from perpendicular. AOB is less than 90 if you are oriented towards the oncoming targets, and AOB should be more then 90 if you are slightly oriented towards the target course.
Once you know the target course it becomes 'easy' to position yourself ahead perpendicular of the approaching convoy. Waiting to become in-line with the first (or any) row of the convoy. With the speed, AOB and the periscope set to the lead angle (set according to those Fast 90 steps) then the TDC will be prepared to fire the torpedoes. Only differences maybe the particular torpedo depth required for a particular tube intended for a target.
The member on the furthest column in that row will pass the periscope line ( set to the leading angle) first. Don't turn the scope or it will cause the torpedos to turn to the non-zero gyro angle. Fire when it is centered on the line by it's own movement. And wait after switching to the second tube (with perhaps a different depth). Now the second-from-furthest column member will approach the line first. Again, wait for the 2nd target to be centered on the line by means of it's own movement, then fire. And so on for up to 4 column targets with your 4 tubes. The nearest one as last.
And eventually this will happen (if every thing is set up correctly).
edit: Guzz01's guide on steam explains virtually the same setup.