- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在世界坐标系 (wcs) 中有一个用中心点向量和 3 个正交方向单位向量定义的平面,设置为 3x3 矩阵。我已经确定了一个关于这个平面坐标系的旋转矩阵,现在我想在世界坐标系中找出与这个旋转相匹配的对应旋转矩阵。那就是我想要一个新的旋转矩阵,它可以应用于 wcs 中的对象以匹配我相对于我的平面计算的旋转。
我想取平面矩阵的逆(由转置操作代替,因为我的平面是正交的)并将其乘以旋转矩阵以获得世界坐标系中的等效旋转。这似乎是错误的,因为:
我的飞机是来自 wcs 的小扰动加上绕 y 轴旋转 90 度
大致:
0 0 -1
0 1 0
1 0 0
并且围绕它的旋转是单位矩阵的一个小扰动。我希望这个小旋转映射到 wcs 中的一个小旋转,但不知何故,我也从扔在那里的飞机获得了 90 度旋转。我的数学哪里出了问题,解决这个问题的正确方法是什么?
最佳答案
你的解释不够清楚,我无法弄清楚你做错了什么,所以我就告诉你如何从头开始。按照这些说明操作,您应该能够弄清楚如何解决您的问题。
计算矩阵坐标变换的关键是非常非常清楚什么是线性变换,矩阵是什么,关系是什么。我将从基础开始。我将首先重复你知道的内容,所以请耐心等待。我只需要确保我们在术语上保持一致。
线性变换是一个函数 F
将一个向量空间映射到另一个(通常是相同的)。
给定一个有限维向量空间和一个基,您可以以独特的方式将向量空间中的任何向量写成一组关联坐标。您获得的表示在很大程度上取决于基础。我们通常将其写为垂直列。
给定两个有限维向量空间,以及一对关联的基 a
和 b
,以及线性变换 F
在它们之间,我们可以写出一个矩阵如下。
a_i
在 a
,记下F(a_i)
在基础 b
作为专栏。 M = Fab
.
Fab * Gbc = (F o G)ac
. (矩阵乘法定义的全部意义在于使这一点成立。)
R3
的线性变换 'F'返回
R3
.您将它表示在基数“b”中,并希望它以基数“a”表示。那就是你有
Fbb
并且想要
Faa
.让
I
是恒等线性变换,它只是将它发送给自己。然后
Faa = Iab * Fbb * Iba
你需要做的就是弄清楚矩阵是什么
Iab
和
Iba
是。
a
(通常的坐标)和
b
.你知道吗
b
在坐标系中写出
a
.按照上面的说明用矩阵表示线性算子(我说的那个很关键),你可以立即写下
Iba
.矩阵
Iab
是这个的倒数。
Iab
的事实感到困惑。是他们猜测应该是什么的倒数。但这是很容易体验的事情。我强烈建议您实际尝试一下。起床。转 90 度。请注意,当您转向一个方向时,世界似乎转向另一个方向。您正在体验这样一个事实,即当您的坐标系以一种方式旋转时,事物的表示会进行相反的操作(即以另一种方式旋转)。
Mx
表示的函数与
M
一个矩阵,最终得到形式为
p + Mx
的函数与
p
一点和
M
一个矩阵。
F
是点上的仿射函数,则
F
是将向量映射到向量的线性函数。 (常量位移动向量的起点和终点,但不会改变它们彼此的偏移量。)这让我们可以轻松地分离仿射函数的常量和线性部分。
p
确定。和一个基础
a
为向量空间。 (稍微复杂一点,但不多。)在该坐标系中任意点
q
可以映射到向量
q - p
然后在基中表示的向量
a
.同样,习惯上将这些坐标写成一列。
F
是一个仿射函数,那么你需要做的就是找出
F
的线性部分,并在其中添加
F
发送坐标系的原点。
(p, a)
,并将其转换为另一个,
(q, b)
,您要做的就是从基础
a
转换线性位到基础
b
,然后弄清楚是什么
F(p)
结果是。
关于math - 将一个坐标系的旋转矩阵变换到另一个坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6074857/
...沮丧。我希望我的游戏仅在横向模式下运行。我已将适当的键/值添加到 Info.plist 文件中,以强制设备方向在启动时正确。 我现在正在尝试旋转 OpenGL 坐标空间以匹配设备的坐标空间。我正
我如何创建一个旋转矩阵,将 X 旋转 a,Y 旋转 b,Z 旋转 c? 我需要公式,除非您使用的是 ardor3d api 的函数/方法。 矩阵是这样设置的 xx, xy, xz, yx, yy, y
假设我有一个包含 3 个 vector 的类(一个用于位置,一个用于缩放,一个用于旋转)我可以使用它们生成一个变换矩阵,该矩阵表示对象在 3D 空间中的位置、旋转和大小。然后我添加对象之间的父/子关系
所以我只是在玩一个小的 javascript 游戏,构建一个 pacman 游戏。你可以在这里看到它:http://codepen.io/acha5066/pen/rOyaPW 不过我对旋转有疑问。你
在我的应用程序中,我有一个 MKMapView,其中显示了多个注释。 map 根据设备的航向旋转。要旋转 map ,请执行以下语句(由方法 locationManager 调用:didUpdateHe
使用此 jquery 插件时:http://code.google.com/p/jqueryrotate/wiki/Documentation我将图像旋转 90 度,无论哪个方向,它们最终都会变得模糊
我有以下代码:CSS: .wrapper { margin:80px auto; width:300px; border:none; } .square { widt
本篇介绍Manim中的两个旋转类的动画,名称差不多,分别是Rotate和Rotating。 Rotate类主要用于对图形对象进行指定角度、围绕特定点的精确旋转,适用于几何图形演示、物理模拟和机械运动
我只想通过小部件的轴移动图像并围绕小部件的中心旋转(就像任何数字绘画软件中的 Canvas ),但它围绕其左顶点旋转...... QPainter p(this); QTransform trans;
我需要先旋转图像,然后再将其加载到 Canvas 中。据我所知,我无法使用 canvas.rotate() 旋转它,因为它会旋转整个场景。 有没有好的JS方法来旋转图片? [不依赖于浏览器的方式] 最
我需要知道我的 Android 设备屏幕何时从一个横向旋转到另一个横向(rotation_90 到 rotation_270)。在我的 Android 服务中,我重新实现了 onConfigurati
**摘要:**本篇文章主要讲解Python调用OpenCV实现图像位移操作、旋转和翻转效果,包括四部分知识:图像缩放、图像旋转、图像翻转、图像平移。 本文分享自华为云社区《[Python图像处理] 六
我只是在玩MTKView中的模板设置;并且,我一直在尝试了解以下内容: 相机的默认位置。 使用MDLMesh和MTKMesh创建基元时的默认位置。 为什么轮换还涉及翻译。 相关代码: matrix_f
我正在尝试使用包 dendexend 创建一个树状图。它创建了非常好的 gg 树状图,但不幸的是,当你把它变成一个“圆圈”时,标签跟不上。我将在下面提供一个示例。 我的距离对象在这里:http://s
我想将一个完整的 ggplot 对象旋转 90°。 我不想使用 coord_flip因为这似乎会干扰 scale="free"和 space="free"使用刻面时。 例如: qplot(as.fac
我目前可以通过首先平移到轴心点然后执行旋转最后平移回原点来围绕轴心点旋转。在我的例子中,我很容易为肩膀做到这一点。但是,我不知道如何为前臂添加绕肘部的旋转。 我已经尝试了以下围绕肘部旋转的前臂: 平移
我想使用此功能旋转然后停止在特定点或角度。现在该元素只是旋转而不停止。代码如下: $(function() { var $elie = $("#bkgimg");
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我正在尝试创建一个非常简单的关键帧动画,其中图形通过给定的中点从一个角度旋转到另一个角度。 (目的是能够通过大于 180 度的 OBTUSE 弧角来制作旋转动画,而不是让动画“作弊”并走最短路线,即通
我需要旋转 NSView 实例的框架,使其宽度变为其高度,其高度变为其宽度。该 View 包含一个字符串,并且该字符串也被旋转,这一点很重要。 我查看了 NSView 的 setFrameRotati
我是一名优秀的程序员,十分优秀!