呼び出し元によって指定された垂直視野とアスペクト比だけで (完全に問題なく) 動作する次の透視投影マトリックスを考えてみましょう。
func (me *Mat4) Perspective (fovY, aspect, near, far float64) {
tfY = near * math.Tan(fovY * math.Pi / 360)
tfX = tfY * aspect
me.Frustum(-tfX, tfX, -tfY, tfY, near, far)
}
これをサポートするためにこの関数の本体を拡張するにはどうすればよいでしょうか: 呼び出し元は、垂直 (fovY) または水平 (fovX) の視野を指定できますが、両方とアスペクト比を指定することはできません。この関数は、指定されたアスペクト比と fovX だけから不足している fovY をどのように計算できますか?