【问题标题】:Logical and Screen Co-ordinates逻辑和屏幕坐标
【发布时间】:2011-05-01 11:05:06
【问题描述】:

建立了一个逻辑坐标到屏幕坐标的映射,以便一个具有 逻辑坐标中 (-5, -4) 到 (+5, +6) 的范围被映射到具有像素的屏幕上 坐标从 0,0 到 300, 400。用户点击像素 200,300。这是什么 对应图中的逻辑坐标?

我们是否创建矩阵 (30x 40y 1)?然后 200=30x => x=6.67 300=40y => y=7.5 ???

【问题讨论】:

  • SO 不是用来做功课的。

标签: language-agnostic layout user-interface geometry coordinates


【解决方案1】:

对于 X,您需要从 (0, 300) 到 (-5, +5) 的映射。因此,您需要一个线性函数 f(x),使得 f(0)=-5 和 f(300)=+5。您可以通过检查将其写下来:

f(x) = -5 + [(+5 - -5)/(300 - 0)]x
     = -5 + (10/300)x

您可以将相同的逻辑简单地应用于另一个轴。

屏幕矩形的左上角在 (0,0) 处这一事实简化了这个问题,但即使不是这种情况,也可以遵循相同的原则。

【讨论】:

  • 非常感谢。那真的很有帮助。结果与使用上面显示的矩阵相同,但在每种情况下都减去了平移 X 和 Y。即 x=6.67-5=1.67 和 y=7.5-4=3.5
  • 显然你可以用矩阵做同样的线性变换,但我认为你这样做不会有任何收获。如果这回答了您的问题,请记住将其标记为已接受的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-04
  • 2023-03-29
  • 2018-01-29
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
相关资源
最近更新 更多