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