我试图在 NSOpenGLView 中按时间戳绘制一些数据。我还想在数据上方覆盖一些非 OpenGL 的 Cocoa 元素,例如高亮框。我的困难在于让坐标系对齐。
自纪元以来,我的数据时间戳以秒为单位。值从 -2 到 2。我可以通过在 OpenGL 中轻松绘制原始数据gluOrtho(startTime, endTime, -2, 2)
。当我尝试将其与缩放和 Cocoa 绘图相结合时,困难就来了。
为简单起见,我将使用线条的示例。(2/18/09 at 13:00:08, -1.5)
这是从to(2/18/09 13:00:13, 1.7)
或(1234980008, -1.5)
to(1234980013, 1.7)
以秒为单位绘制的一条线(使用 OpenGL) :
比例=1 http://ccg.cc.gt.atl.ga.us/~anjiro/tmp/scale1.png
为了便于讨论,假设我现在想使用 Cocoa 在 OpenGL 线的顶部覆盖一条完全相同的线。我希望能够使用完全相同的坐标,即(1234980008, -1.5) -> (1234980013, 1.7)
.
所以这是第一个问题。现在我想看到更多细节,所以我想缩放:
比例=2 http://ccg.cc.gt.atl.ga.us/~anjiro/tmp/scale2.png
我仍然想绘制相同的 Cocoa 线,但我还需要知道,在数据坐标中,此窗口中可见什么,因此我不必绘制额外的数据。
我尝试了多种解决方案,但无法完全发挥作用。我可以这样做吗?如果是这样,怎么做?如果没有,我应该怎么做?