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

标签 wpf math matrix transform

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

最佳答案

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

编辑:但是您应该能够自己进行此操作,而不会遇到不必要的麻烦。 (不需要林算法的知识。)我的意思是,如果您希望 x 轴采用对数刻度,取您正在绘制的 x 坐标的对数。棘手的部分是使比例图例在图表的一侧起作用 - 归结为将每个比例值从 x 转换为 10^x(或您使用的任何对数底)。

所以图例是这样的:

1     10    100   1000

而不是

1      2      3      4

关于wpf - 是否存在可以对 x 和/或 y 轴进行对数缩放的变换矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2538844/

相关文章:

javascript - WPF/XBAP应用程序可以嵌入HTML页面并调用一些javascript(就像Flash一样)

c# - 从 usercontrol viewmodel 到 customUsercontrol Viewmodel 的 Unity 依赖注入(inject)

java - 获取包含复数小数的数组列表的总和

algorithm - O(n) 中的 Frechet 距离

Ruby 数学.radians

R:使用嵌套应用在两个数据框中的所有列组合上运行

python - 如何通过相邻值分割矩阵?

c# - 如何在启动画面 (System.Windows.SplashScreen) 上放置文本?

matrix - 以 Octave 为单位调整矩阵

c# - 使用 LINQ 列出(和返回)的列