本文整理汇总了C#中Matrix4.IsOrthonormal方法的典型用法代码示例。如果您正苦于以下问题:C# Matrix4.IsOrthonormal方法的具体用法?C# Matrix4.IsOrthonormal怎么用?C# Matrix4.IsOrthonormal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix4
的用法示例。
在下文中一共展示了Matrix4.IsOrthonormal方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LookAt
/// <summary>
/// Compute a lookat matrix for the camera. The vector (eye, center)
/// maps to -z (since OpenGL looks downward z), and up maps to y.
/// </summary>
public static Matrix4 LookAt( Vector3 eye, Vector3 center, Vector3 _Up )
{
Vector3 up = _Up.Normalize();
Common.Assert( up.IsUnit(1.0e-3f) );
Vector3 x,y,z;
float EPSILON=1.0e-5f;
if ( ( eye - center ).Length() > EPSILON )
{
z = ( eye - center ).Normalize();
if ( FMath.Abs( z.Dot( up ) ) > 0.9999f )
{
y = z.Perpendicular();
x = y.Cross( z );
}
else
{
x = up.Cross( z ).Normalize();
y = z.Cross( x );
}
}
else
{
y = up;
x = y.Perpendicular(); // use any vector perpendicular to y
z = x.Cross( y );
}
Matrix4 retval = new Matrix4()
{
ColumnX = x.Xyz0,
ColumnY = y.Xyz0,
ColumnZ = z.Xyz0,
ColumnW = eye.Xyz1
};
Common.Assert( retval.IsOrthonormal( 1.0e-3f ) );
return retval;
}