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

时间:2010-03-29 14:52:10

标签: wpf math matrix transform

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

2 个答案:

答案 0 :(得分:2)

矩阵是线性变换,因此它们可以缩放,旋转等。但是它们不能以对数方式拉伸。这是一种非线性转变。

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

传说中的内容如下:

1     10    100   1000

而不是

1      2      3      4

答案 1 :(得分:0)

嗯,显然矩阵就是这样:

( log(x) / x        0      ) ( x )  =  ( log(x) )
(      0        log(y) / y ) ( y )  =  ( log(y) )

但这显然没用。你不能写一个常数矩阵来进行非线性变换。