首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C#中一次旋转,缩放和转换矩阵?

在C#中,您可以使用System.Numerics命名空间中的Matrix3x2和Vector2类型来实现一次旋转、缩放和转换矩阵。以下是一个示例代码:

代码语言:csharp
复制
using System;
using System.Numerics;

class Program
{
    static void Main(string[] args)
    {
        // 创建一个初始矩阵
        Matrix3x2 matrix = Matrix3x2.Identity;

        // 旋转矩阵
        float angleInRadians = (float)(Math.PI / 4); // 45度旋转
        Matrix3x2 rotationMatrix = Matrix3x2.CreateRotation(angleInRadians);
        matrix *= rotationMatrix;

        // 缩放矩阵
        float scaleX = 2.0f;
        float scaleY = 1.5f;
        Matrix3x2 scaleMatrix = Matrix3x2.CreateScale(scaleX, scaleY);
        matrix *= scaleMatrix;

        // 转换矩阵
        Vector2 translation = new Vector2(100, 50);
        Matrix3x2 translationMatrix = Matrix3x2.CreateTranslation(translation);
        matrix *= translationMatrix;

        // 使用矩阵进行坐标变换
        Vector2 point = new Vector2(10, 20);
        Vector2 transformedPoint = Vector2.Transform(point, matrix);

        Console.WriteLine($"Transformed point: ({transformedPoint.X}, {transformedPoint.Y})");
    }
}

在这个示例中,我们首先创建一个初始矩阵,然后分别创建旋转、缩放和转换矩阵,并将它们乘以初始矩阵。最后,我们使用Transform方法将矩阵应用于一个坐标点,以获得变换后的坐标。

关于System.Numerics命名空间的详细信息,您可以参考Microsoft官方文档:System.Numerics命名空间

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券