分解二维变换矩阵

2023-11-24

所以,我有一个 Direct2DMatrix3x2F我用它来存储几何图形的变换。我希望这些转换是用户可编辑的,并且我不希望用户必须直接编辑矩阵。是否可以将 3x2 矩阵分解为缩放、旋转、倾斜和平移?


这是我为 Direct2D 变换矩阵找到的解决方案:

  • 尺度 x =sqrt(M11 * M11 + M12 * M12)

  • 尺度 y =sqrt(M21 * M21 + M22 * M22) * cos(shear)

  • 旋转=atan2(M12, M11)

  • 剪切力 (y) =atan2(M22, M21) - PI/2 - rotation

  • 平移 x =M31

  • 平移 y =M32

如果将这些值按顺序相乘scale(x, y) * skew(0, shear) * rotate(angle) * translate(x, y)您将得到一个执行等效变换的矩阵。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分解二维变换矩阵 的相关文章

  • UTF8/UTF16 和 Base64 在编码方面有什么区别

    In c 我们可以使用下面的类来进行编码 System Text Encoding UTF8 System Text Encoding UTF16 System Text Encoding ASCII 为什么没有System Text En
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co

随机推荐

  • Python 中的离散拉普拉斯算子(del2 等效)

    我需要 Matlab Octave 离散拉普拉斯算子 函数 的 Python Numpy 等效项del2 我尝试了几个Python解决方案 其中没有一个与输出匹配del2 在八度上我有 image 3 4 6 7 8 9 10 11 12
  • 在 C# 中以编程方式将 SSRS 报告另存为 PDF

    我已经阅读了有关此问题的多篇文章 但它们最终都无法正常工作 或者位于 vb net 中 我目前拥有的 这些报告可通过 URL 进行访问 该 URL 将其呈现为 PDF 并在用户单击按钮时将其保存在下载文件夹中 这些报告具有通用名称 例如 O
  • 是否有一种技术可以将 XSL 转换管道合并为单个转换?

    我已经编写了一个使用 15 个 XSL 样式表管道的应用程序 并且我开始致力于调整其性能 它被设计为可移植的 因此可以在 Web 浏览器环境和桌面上运行 在桌面上 我认为将样式表作为多个转换的管道分开可能是有意义的 因为这允许每个单独的转换
  • 模糊半透明形式的背景(如 Aero 玻璃)

    我有一个无边框 不可调整大小的 WPF 表单 WindowStyle None AllowsTransparency True ResizeMode NoResize 具有半透明背景 这是一个半透明的红色矩形表单现在在记事本上运行的样子的图
  • ASP.NET 动态数据 TextSearch 自定义过滤器模板

    我正在尝试为所有基于文本的搜索实现自定义过滤器模板 但在构建查询时遇到了问题 我一直按照发布的说明进行操作这个博客但不确定如何更改 GetQueryable 方法来执行 WHERE columnAttribute LIKE somethin
  • EmberJS - 如何使用 linkTo 动态生成链接?

    有没有办法使用动态生成链接link to通过传递带有路由路径的变量来提供帮助 例如 不要像这样对路径进行硬编码 linkTo route subroute model model title linkTo 我希望能够通过link tohel
  • 如何通过 UDP CFSocket 发送数据包?

    我是网络方面的新手 但我是一名 C C 程序员 并且正在使用 Objective C 这是针对 OSX iPhone 的 我正在尝试学习如何使用 cfsocket 通过 UDP 套接字发送魔术包 我见过有诸如 AsyncUDP Socket
  • Angular 5:条件模块延迟加载

    我在尝试根据用户配置文件延迟加载模块时遇到问题 我定义了三个默认路径 每个路由的路径为空 每个用户都可以访问特定的模块 我正在使用守卫来确定当前的用户配置文件 实际上我正在手动切换以通过设置来设置默认加载的模块常量 canGo true 预
  • 具有 Webview 的 IOS 和 Android 应用程序仅被视为混合应用程序还是 Web 应用程序?

    我的困惑是 用 Java 或 Swift 创建的仅带有 Web 视图的应用程序是否被视为混合应用程序或 Web 应用程序 我知道 Web 应用程序几乎只使用 Web 但如果它是通过 Java Webview 的 Web 视图 那么它真的被视
  • 即将推出的 Java 并发库:jsr166y 是什么? jsr166z?

    我想尝试一下即将推出的并发库 将被包含在Java 7 根据这个网站 好像有名字JSR166 在大多数地方 其参考实现被称为jsr166y 虽然很少有资源称之为jsr166z 我完全发现了两个不同的每个参考实现的 javadocs 文档用于j
  • mongoose:禁止更新特定字段

    var post mongoose Schema createdOn Date 我想允许设置 createdOn仅在创建文档时字段 并且不允许在将来的更新中更改它 Mongoose 中是如何完成的 我通过设置达到了这个效果 createdO
  • 如何从可迭代的元组创建多维 numpy 数组?

    我想从可迭代对象创建一个 numpy 数组 它会产生值的元组 例如数据库查询 Like so data db execute SELECT col1 col2 col3 col4 FROM data A np array list data
  • 仔细检查片段+视图持有者模式是否正确实现

    由于内存泄漏 我一直在重新编写一些代码 该代码是应用程序帮助部分的一部分 我们在其中使用 FragmentActivity 和 FragmentPageAdapter 来允许用户滑动浏览不同的帮助屏幕 每个片段 下面的SectionFrag
  • gem install json 因重新定义 struct timezone/timespec 而失败

    我在 Windows 上使用 Ruby 1 9 3 和 DevKit Win 7 64 位上的所有 32 位 现在我尝试安装 Rails 但从捆绑包中收到错误 如果我尝试运行 bundle 抱怨什么 gem install json 我收到
  • 如何使用 PHP 将十进制数转换为单词(货币格式)?

    我这里只需要一点帮助 因为我正在创建一个代码 用于将小数转换为单词中的货币格式 例如如果 我有这个号码 2143 45 输出应该是 两千一百四十三又四十五美分 我找到了这样的代码 但我不知道如何包含美分
  • 启动下载的最佳方式?

    在一个基于 PHP 的网站上 我想在用户填写完简短的表单后向他们发送一个下载包 站点启动的下载应该类似于 download com 等站点 后者表示 您的下载将立即开始 几个可能的方法我知道浏览器兼容性 基于快速测试 1 Do a wind
  • LINQ 选择不同的 C#

    我正在尝试执行不包含重复的查询IdUser值 但不起作用 这是我的 linq 查询 var sql from u in db USER join c in db CONSULT on u IdUser equals c IdUser sel
  • 使用 Lambda 从 S3 获取图像在 Python 中返回一个白框

    我正在尝试从 S3 存储桶获取图像并将其返回 这是代码 import base64 import boto3 import json import random s3 boto3 client s3 def lambda handler e
  • getBytes() 方法返回未知字节

    import java io UnsupportedEncodingException import java util Arrays public class Main public static void main String arg
  • 分解二维变换矩阵

    所以 我有一个 Direct2DMatrix3x2F我用它来存储几何图形的变换 我希望这些转换是用户可编辑的 并且我不希望用户必须直接编辑矩阵 是否可以将 3x2 矩阵分解为缩放 旋转 倾斜和平移 这是我为 Direct2D 变换矩阵找到的