857 {
858 if (fieldOfView <= 0f || fieldOfView >= (
float)
Math.
PI)
859 {
861 }
862 if (nearPlaneDistance <= 0f)
863 {
865 }
866 if (farPlaneDistance <= 0f)
867 {
869 }
870 if (nearPlaneDistance >= farPlaneDistance)
871 {
873 }
874 float num = 1f / (float)
Math.
Tan(fieldOfView * 0.5f);
875 float m = num / aspectRatio;
877 result.M11 = m;
878 result.M12 = (result.M13 = (result.M14 = 0f));
879 result.M22 = num;
880 result.M21 = (result.M23 = (result.M24 = 0f));
881 result.M31 = (result.M32 = 0f);
882 result.M33 = farPlaneDistance / (nearPlaneDistance - farPlaneDistance);
883 result.M34 = -1f;
884 result.M41 = (result.M42 = (result.M44 = 0f));
885 result.M43 = nearPlaneDistance * farPlaneDistance / (nearPlaneDistance - farPlaneDistance);
886 return result;
887 }
static CultureInfo CurrentCulture
static double Tan(double a)
Matrix(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44)