问题标签 [matrix-transform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 矩阵:有效地将第 n 行移动 n 个位置
我有一个 numpy 2d 数组,我需要以第一行保持不变的方式对其进行转换,第二行向右移动一个位置(它可以环绕或仅在前面填充零)。第三行向右移动 3 个位置,依此类推。我可以通过“for 循环”来做到这一点,但这不是很有效。我猜应该有一个与原始矩阵相乘的过滤矩阵会产生相同的效果,或者可能是一个可以帮助我做到这一点的 numpy 技巧?谢谢!我研究了 numpy.roll() 但我认为它不能单独在每一行上工作。
java - Java如何放大矩阵
在 Android 中,我有:
1)矩阵(大小为257x257
, float[257][257]
,每个元素代表图像像素的一个参数);2) 图像(大小为nx257
, nx257
, bytearray[n*257][n*257]
n 为float
, >=1)
如何将矩阵缩放到图像大小,重复元素,如下所示:例如:
缩放两倍至:
如果 n*257 不是整数,则允许边缘不准确。我知道 Python numpy 如何做到这一点,但在 java/android 中,我还没有找到一种高效的方法。谁能帮我?谢谢!
matlab - 计算平行平面上到法线向量的距离
我的数学(和 matlab)只是不符合这个,所以我谦虚地请求你的帮助:
我有一个通过环形空间的流动模型。我想得到峰值流量点的半径和环到中心线的半径。
因此,我在 3D 模型中有 3 个点 ABC,其坐标我们知道但未与 xyz 对齐。我希望 AB 是平面上的两个点,点 A 是原点(环的中心)。点 C 位于与前一个平面(峰值流量点)平行的平面上。我想知道如何计算其平面上的 C 与通过点 A 的 AB 平面的法向量之间的距离。
现在我有一个比我聪明的朋友,他想出了一个 matlab 代码来平移和旋转模型,然后计算 AB 和 AnormC 的大小。但是,它不起作用,因为它使 C 的半径大于 B。我也意识到解决这个问题的方法不止一种。
代码如下。有什么想法我们哪里出错了吗?或者也许有更好的方法来做到这一点?我想到了矢量,但我的涂鸦一无所获。
谢谢你。
托比
linear-regression - 寻找一个非线性变换矩阵(就像一个有趣的房子镜子)
找到非线性变换矩阵的最有效方法是什么。
从概念上讲,想象一个人的正常图像,然后是同一个人的游乐园镜像。 游乐园形象
你如何找到“镜子”?- 您可以将矩阵应用于正常图像,从而为您提供以相同方式扭曲的游乐园镜像?
应该可以推广到更高的维度。如果我有一个带有使用嵌入方法 1 的向量的项目和一个使用嵌入方法 2 的向量,我如何找到一个矩阵来允许我将具有嵌入 1 的新项目投影到嵌入方法 2 向量空间中?
我使用最小二乘法使用了以下线性解决方案:
但我认为我需要一个非线性解决方案才能获得更好的结果。
matlab - 如何使用 plot3 绘制 3D 矩阵
我有一个图像(mat 文件),可以将其作为 2D 矩阵 2*10095 访问。然后我对其进行线性代数处理,将其投影到法向量 N = [1,2,3] 的平面上,并得到 3D 矩阵 (x,y,z) 的值。
如何在 Matlab 中使用 plot3 绘制 3D 矩阵?plot3 接受三个参数 (x,y,z) 并且我的矩阵中的每一列都有这些参数 [x;y;z] 但是我怎样才能将所有 10095 列传递给 plot3 - 那不会显示图像“铺设”根据我在z轴上的计算?
当它是二维矩阵时,我用它来绘制图像:
svg - FireFox 上的 SVG getScreenCTM()
目标
我正在尝试在 SVG 中构建签名板。您可以 在此处查看示例项目。
描述 到目前为止,它可以在 Chrome、Edge 和 Opera 中正常工作,但在 Firefox 中,getScreenCTM() 不考虑规模。
研究
我浏览了来自 bugzilla 的一堆文档以及 SO 中的一些帖子,例如SVG:GetScreenCTM() for nested SVG is different in Firefox但是,仍然无法弄清楚如何解决我的问题。
问题
我添加了一个浏览检查来仅处理 Firefox(因为所有其他浏览器都提供了所需的结果),这允许我添加额外的代码来解决问题,但到目前为止,还没有成功。(SP签名:416)
重现错误
要重现该错误,请在 FireFox 中打开示例链接,然后调整框的大小,使其至少比全屏时小 20%。您将看到鼠标 X/Y 位置随着比例的变化而变化。
我试图从组标签中获取矩阵变换,但是它从 SVG 返回了类似的结果。如何计算 CTM,使其结果类似于/等于 Chrome?
代码
源代码在这里SPSignature:416
2d - 对父项中的子项进行 2D 矩阵变换(分层变换)
我正在使用 Skia 和 C++,但问题实际上与框架和语言无关。
我有可以具有平移、旋转和缩放的对象。它们也可以有一个不是 (0,0) 的局部原点 - 例如,一个正方形的原点可能位于中心而不是左上角。
对象可以有子对象,并且这些子对象相对于父对象进行变换。矩阵在沿层次结构移动时被组合。
这是我如何做的示例代码,它按预期工作。
但我的问题是 - 我怎样才能改变它,这样我就不必将原点乘以比例?
我迷失在前后连接(乘法)矩阵运算顺序中!
任何帮助表示赞赏
c - 如何在 C 中反转欧几里得(仅变换和旋转)矩阵?
你如何反转只有平移和旋转,没有比例的 4x3 矩阵?你会用什么来做一个OpenGL矩阵逆(只是没有缩放)?