You get the 61.96... by measuring it. Here is Dimitry's program for measuring it:
+ Code SnippetRandomize Timer()
`FOV#=RND(3600)/10.0
`Set Camera Fov FOV#
Backdrop On
Sync Rate 0
Sync On
Do
Text 10, 10, "Function GetCurrentFOV() by Dmitry Kuschev"
Text 10, 50, "FOV# = "+Str$(FOV#)
Text 10, 70, "GetCurrentFOV() = "+Str$(GetCurrentFOV())
Sync
Loop
Function GetCurrentFOV()
r=Make Matrix4(100)
r=Make Vector4(101)
Projection Matrix4 100
Set Vector4 101, 1.0, 0.0, 0.0, 0.0
Transform Vector4 101, 101, 100
GetFOVResult#=Atan(1.0/(X Vector4(101)*((Screen Width()*1.0)/(Screen Height()*1.0))))*2.0
If GetFOVResult# <= 0.0 Then Inc GetFOVResult#, 360.0
r=Delete Matrix4(100)
r=Delete Vector4(101)
EndFunction GetFOVResult#
If you run this is prints the value. Some folks tested it by displaying an object and then setting the FOV to this value midstream, and noticing no change. Incidentally, I don't claim to understand HOW this program works.
Regarding getting images to look right with various screen configurations, I front load each program to Get Display Width, Get Display Height, and then Set Display Mode to the values I got. It seems easier than having to know what kind of screen I am using, let alone what kind of default aspect ratio DB is assuming, and then setting aspect ratio.