首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否存在可以对x和/或y轴进行对数缩放的变换矩阵?

是否存在可以对x和/或y轴进行对数缩放的变换矩阵?
EN

Stack Overflow用户
提问于 2010-03-29 22:52:10
回答 2查看 2.7K关注 0票数 5

我正在使用.net的WPF几何类来绘制波形。我一直在使用矩阵变换将波形从屏幕坐标空间转换到我的坐标空间。一切都很好,跟踪我的窗口和缩放等都很简单。我甚至可以使用逆变换来计算坐标空间中的鼠标位置。我使用内置的Scaling和Translation类,然后使用自定义矩阵进行y轴翻转(没有用于翻转的预置矩阵)。我也希望能够在对数尺度上绘制这些波形(x轴或y轴或两者都有),但我不确定这是否可以通过矩阵变换来实现。有没有人知道这是否可能,如果可能,矩阵是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-29 23:06:27

矩阵是线性变换,所以它们可以缩放、旋转等,但它们不能对数拉伸。这是一个非线性变换。

编辑:但你应该能够自己滚动这个,没有不必要的麻烦。(不需要了解lin alg。)我的意思是,如果你想让x轴在对数标度上,取x坐标的对数,作为图。棘手的部分是让scale图例在图形的一侧工作--这归结为将每个scale值从x转换为10^x (或您使用的任何对数底数)。

因此,图例应该是这样的:

代码语言:javascript
运行
复制
1     10    100   1000

而不是

代码语言:javascript
运行
复制
1      2      3      4
票数 2
EN

Stack Overflow用户

发布于 2010-03-29 23:08:02

很明显,矩阵是这样的:

代码语言:javascript
运行
复制
( log(x) / x        0      ) ( x )  =  ( log(x) )
(      0        log(y) / y ) ( y )  =  ( log(y) )

但这显然是没有用的。你不能写一个常量矩阵来做非线性变换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2538844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档