Wpf 是否存在可以对数缩放x轴和/或y轴的变换矩阵?
我正在使用.NETWPF几何类来绘制波形。我一直在使用矩阵变换从屏幕坐标空间转换到波形的坐标空间。一切都很好,跟踪窗口和缩放等非常简单。我甚至可以使用逆变换来计算鼠标在坐标空间中的位置。我使用内置的缩放和平移类,然后使用自定义矩阵进行y轴翻转(没有用于翻转的预制矩阵)。我希望能够在对数刻度上绘制这些波形(x轴或y轴或两者),但我不确定这是否可能通过矩阵变换实现。有人知道这是否可能,如果可能,矩阵是什么吗?矩阵是线性变换,因此它们可以缩放、旋转等,但不能对数拉伸。这是一个非线性变换 编辑:但是你应该能够自己滚动这个,没有不必要的麻烦。(不需要林阿尔格知识。)我的意思是,如果你想让x轴处于对数刻度,记录你正在绘制的x坐标。棘手的部分是使比例图例在图形的一侧工作——这归结为将每个比例值从x转换为10^x(或使用的任何对数基数) 因此,传说是这样的:Wpf 是否存在可以对数缩放x轴和/或y轴的变换矩阵?,wpf,math,matrix,transform,Wpf,Math,Matrix,Transform,我正在使用.NETWPF几何类来绘制波形。我一直在使用矩阵变换从屏幕坐标空间转换到波形的坐标空间。一切都很好,跟踪窗口和缩放等非常简单。我甚至可以使用逆变换来计算鼠标在坐标空间中的位置。我使用内置的缩放和平移类,然后使用自定义矩阵进行y轴翻转(没有用于翻转的预制矩阵)。我希望能够在对数刻度上绘制这些波形(x轴或y轴或两者),但我不确定这是否可能通过矩阵变换实现。有人知道这是否可能,如果可能,矩阵是什么吗?矩阵是线性变换,因此它们可以缩放、旋转等,但不能对数拉伸。这是一个非线性变换 编辑:但是你应
1 10 100 1000
而不是
1 2 3 4
很明显,矩阵是这样的:
( log(x) / x 0 ) ( x ) = ( log(x) )
( 0 log(y) / y ) ( y ) = ( log(y) )
但这显然没有用。你不能写一个常数矩阵来进行非线性变换。谢谢,是的,我想可能是这样,也许有一种方法可以创建我自己的Transform类实现来进行非线性变换?转换抽象基类似乎仍然使用矩阵,这可能是进行复合转换的必要条件,因此这可能也不可能。我想我得自己做日志缩放了。糟糕。我学线性代数已经很久了。我不是WPF专家,但我在MSDN上查看了Transform类的描述,它似乎是专为线性变换设计的。(这有很好的理由——它们的用途非常广泛,而且更容易推理。)