• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# SharpDX.Matrix3x2类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中SharpDX.Matrix3x2的典型用法代码示例。如果您正苦于以下问题:C# Matrix3x2类的具体用法?C# Matrix3x2怎么用?C# Matrix3x2使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Matrix3x2类属于SharpDX命名空间,在下文中一共展示了Matrix3x2类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: Rotate

 public void Rotate(float angle)
 {
     Control = 
         s.Matrix3x2.Multiply(
             s.Matrix3x2.Rotation(angle), // premultiply
             Control);
 }
开发者ID:JohnACarruthers,项目名称:Eto,代码行数:7,代码来源:MatrixHandler.cs


示例2: RotateAt

		public void RotateAt(float angle, float centerX, float centerY)
		{
			angle = Conversions.DegreesToRadians(angle);
			var sina = (float)Math.Sin(angle);
			var cosa = (float)Math.Cos(angle);
			var matrix = new s.Matrix3x2(cosa, sina, -sina, cosa, centerX - centerX * cosa + centerY * sina, centerY - centerX * sina - centerY * cosa);
			Control = s.Matrix3x2.Multiply(matrix, Control);
		}
开发者ID:mhusen,项目名称:Eto,代码行数:8,代码来源:MatrixHandler.cs


示例3: Matrix3x3

 public Matrix3x3(Matrix3x2 Other)
 {
     M00 = Other.M11;
     M01 = Other.M12;
     M02 = 0;
     M10 = Other.M21;
     M11 = Other.M22;
     M12 = 0;
     M20 = Other.M31;
     M21 = Other.M32;
     M22 = 1;
 }
开发者ID:Naronco,项目名称:Rekd-Sharp,代码行数:12,代码来源:Matrix3x3.cs


示例4: Invert

        public static void Invert(ref Matrix3x2 matrix, out Matrix3x2 result)
        {
            float determinant = matrix.Determinant();

            if (MathUtil.WithinEpsilon(determinant, 0.0f)) {
                result = Matrix3x2.Identity;
                return;
            }

            float invdet = 1.0f / determinant;
            float _offsetX = matrix.M31;
            float _offsetY = matrix.M32;

            result = new Matrix3x2(
                matrix.M22 * invdet,
                -matrix.M12 * invdet,
                -matrix.M21 * invdet,
                matrix.M11 * invdet,
                (matrix.M21 * _offsetY - _offsetX * matrix.M22) * invdet,
                (_offsetX * matrix.M12 - matrix.M11 * _offsetY) * invdet);
        }
开发者ID:sleepless1,项目名称:GameSharp,代码行数:21,代码来源:MathHelper.cs


示例5: DrawGlyphRun

        public Result DrawGlyphRun(object clientDrawingContext, float baselineOriginX, float baselineOriginY, MeasuringMode measuringMode, GlyphRun glyphRun, GlyphRunDescription glyphRunDescription, ComObject clientDrawingEffect)
        {
            var pathGeometry = new PathGeometry(_d2DFactory);
            var geometrySink = pathGeometry.Open();

            var fontFace = glyphRun.FontFace;
            if (glyphRun.Indices.Length > 0)
                fontFace.GetGlyphRunOutline(glyphRun.FontSize, glyphRun.Indices, glyphRun.Advances, glyphRun.Offsets, glyphRun.IsSideways, glyphRun.BidiLevel % 2 != 0, geometrySink);
            geometrySink.Close();
            geometrySink.Dispose();
            fontFace.Dispose();

            var matrix = new Matrix3x2()
            {
                M11 = 1,
                M12 = 0,
                M21 = 0,
                M22 = 1,
                M31 = baselineOriginX,
                M32 = baselineOriginY
            };

            var transformedGeometry = new TransformedGeometry(_d2DFactory, pathGeometry, matrix);

            var  brushColor = (Color4)Color.Black;

            if (clientDrawingEffect != null && clientDrawingEffect is ColorDrawingEffect)
                brushColor = (clientDrawingEffect as ColorDrawingEffect).Color;

            var brush = new SolidColorBrush(_renderTarget, brushColor);
            
            _renderTarget.DrawGeometry(transformedGeometry, brush);
            _renderTarget.FillGeometry(transformedGeometry, brush);

            pathGeometry.Dispose();
            transformedGeometry.Dispose();
            brush.Dispose();

            return SharpDX.Result.Ok;
        }
开发者ID:numo16,项目名称:SharpDX,代码行数:40,代码来源:CustomTextRenderer.cs


示例6: CalculateMatrix

		/// <summary>
		/// 计算转换矩阵。
		/// </summary>
		private void CalculateMatrix()
		{
			matrix = new Matrix3x2(1, 0, 0, 1, -shape.Center.X, -shape.Center.Y);
			if (rotate != 0)
			{
				matrix *= Matrix3x2.Rotation(this.rotateRadian);
			}
			if (this.scale != 1)
			{
				matrix *= Matrix3x2.Scaling(scale);
			}
			matrix *= Matrix3x2.Translation(offset.X + scale * shape.Center.X, offset.Y + scale * shape.Center.Y);
		}
开发者ID:CYJB,项目名称:Cyjb.Projects.JigsawGame,代码行数:16,代码来源:JigsawPiece.cs


示例7: Append

		public void Append(IMatrix matrix)
		{
			Control = s.Matrix3x2.Multiply(this.Control, matrix.ToDx());
		}
开发者ID:mhusen,项目名称:Eto,代码行数:4,代码来源:MatrixHandler.cs


示例8: ScaleAt

		public void ScaleAt(float scaleX, float scaleY, float centerX, float centerY)
		{
			var matrix = new s.Matrix3x2(scaleX, 0f, 0f, scaleY, centerX - centerX * scaleX, centerY - centerY * scaleY);
			Control = s.Matrix3x2.Multiply(matrix, Control);
		}
开发者ID:mhusen,项目名称:Eto,代码行数:5,代码来源:MatrixHandler.cs


示例9: Scale

        public void Scale(float sx, float sy)
        {
			Control = s.Matrix3x2.Multiply(s.Matrix3x2.Scaling(sx, sy), Control); // premultiply
        }
开发者ID:mhusen,项目名称:Eto,代码行数:4,代码来源:MatrixHandler.cs


示例10: MatrixHandler

 public MatrixHandler(ref s.Matrix3x2 m)
 {
     this.Control = m; // copied the value as Control is a struct
 }
开发者ID:mhusen,项目名称:Eto,代码行数:4,代码来源:MatrixHandler.cs


示例11: Translation

 /// <summary>
 /// Creates a translation matrix using the specified offsets.
 /// </summary>
 /// <param name="value">The offset for both coordinate planes.</param>
 /// <param name="result">When the method completes, contains the created translation matrix.</param>
 public static void Translation(ref Vector2 value, out Matrix3x2 result)
 {
     Translation(value.X, value.Y, out result);
 }
开发者ID:CSharpDev,项目名称:SharpDX,代码行数:9,代码来源:Matrix3x2.cs


示例12: Transformation

 /// <summary>
 /// Creates a transformation matrix.
 /// </summary>
 /// <param name="xScale">Scaling factor that is applied along the x-axis.</param>
 /// <param name="yScale">Scaling factor that is applied along the y-axis.</param>
 /// <param name="angle">Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis.</param>
 /// <param name="xOffset">X-coordinate offset.</param>
 /// <param name="yOffset">Y-coordinate offset.</param>
 /// <param name="result">When the method completes, contains the created transformation matrix.</param>
 public static void Transformation(float xScale, float yScale, float angle, float xOffset, float yOffset, out Matrix3x2 result)
 {
     result = Scaling(xScale, yScale) * Rotation(angle) * Translation(xOffset, yOffset);
 }
开发者ID:CSharpDev,项目名称:SharpDX,代码行数:13,代码来源:Matrix3x2.cs


示例13: Rotation

 /// <summary>
 /// Creates a matrix that rotates about a specified center.
 /// </summary>
 /// <param name="angle">Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis.</param>
 /// <param name="center">The center of the rotation.</param>
 /// <param name="result">When the method completes, contains the created rotation matrix.</param>
 public static void Rotation(float angle, Vector2 center, out Matrix3x2 result)
 {
     result = Translation(-center) * Rotation(angle) * Translation(center);
 }
开发者ID:CSharpDev,项目名称:SharpDX,代码行数:10,代码来源:Matrix3x2.cs


示例14: Scaling

        /// <summary>
        /// Creates a matrix that is scaling from a specified center.
        /// </summary>
        /// <param name="x">Scaling factor that is applied along the x-axis.</param>
        /// <param name="y">Scaling factor that is applied along the y-axis.</param>
        /// <param name="center">The center of the scaling.</param>
        /// <param name="result">The created scaling matrix.</param>
        public static void Scaling( float x, float y, ref Vector2 center, out Matrix3x2 result)
        {
            Matrix3x2 localResult;

            localResult.M11 = x;     localResult.M12 = 0.0f;
            localResult.M21 = 0.0f;  localResult.M22 = y;

            localResult.M31 = center.X - (x * center.X);
            localResult.M32 = center.Y - (y * center.Y);

            result = localResult;
        }
开发者ID:CSharpDev,项目名称:SharpDX,代码行数:19,代码来源:Matrix3x2.cs


示例15: Invert

        public void Invert()
        {
			this.Control = s.Matrix3x2.Invert(this.Control);
        }
开发者ID:mhusen,项目名称:Eto,代码行数:4,代码来源:MatrixHandler.cs


示例16: Rotate

        public void Rotate(float angle)
        {
			Control = s.Matrix3x2.Multiply(s.Matrix3x2.Rotation(Conversions.DegreesToRadians(angle)), Control); // premultiply
        }
开发者ID:mhusen,项目名称:Eto,代码行数:4,代码来源:MatrixHandler.cs


示例17: TransformPoint

 /// <summary>
 /// Transforms a vector by this matrix.
 /// </summary>
 /// <param name="matrix">The matrix to use as a transformation matrix.</param>
 /// <param name="point">The original vector to apply the transformation.</param>
 /// <returns>The result of the transformation for the input vector.</returns>
 public static Vector2 TransformPoint(Matrix3x2 matrix, Vector2 point)
 {
     Vector2 result;
     result.X = (point.X * matrix.M11) + (point.Y * matrix.M21) + matrix.M31;
     result.Y = (point.X * matrix.M12) + (point.Y * matrix.M22) + matrix.M32;
     return result;
 }
开发者ID:CSharpDev,项目名称:SharpDX,代码行数:13,代码来源:Matrix3x2.cs


示例18: Translate

        public void Translate(float x, float y)
        {
			Control = s.Matrix3x2.Multiply(s.Matrix3x2.Translation(x, y), Control); // premultiply
        }
开发者ID:mhusen,项目名称:Eto,代码行数:4,代码来源:MatrixHandler.cs


示例19: Skew

		public void Skew(float skewX, float skewY)
		{
			var matrix = new s.Matrix3x2(1, (float)Math.Tan(Conversions.DegreesToRadians(skewX)), (float)Math.Tan(Conversions.DegreesToRadians(skewY)), 1, 0, 0);
			Control = s.Matrix3x2.Multiply(matrix, Control);
		}
开发者ID:mhusen,项目名称:Eto,代码行数:5,代码来源:MatrixHandler.cs


示例20: Invert

 /// <summary>
 /// Calculates the inverse of the specified matrix.
 /// </summary>
 /// <param name="value">The matrix whose inverse is to be calculated.</param>
 /// <returns>the inverse of the specified matrix.</returns>
 public static Matrix3x2 Invert(Matrix3x2 value)
 {
     Matrix3x2 result;
     Invert(ref value, out result);
     return result;
 }
开发者ID:CSharpDev,项目名称:SharpDX,代码行数:11,代码来源:Matrix3x2.cs



注:本文中的SharpDX.Matrix3x2类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# SharpDX.Size2F类代码示例发布时间:2022-05-26
下一篇:
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap