J'essaie de tracer certaines données par horodatage dans un NSOpenGLView. Je souhaite également superposer certains éléments Cocoa non-openGL au-dessus des données, tels que les zones de surlignage. Ma difficulté est d'aligner les systèmes de coordonnées.Transformations de coordonnées Cocoa/OpenGL
Les horodatages de mes données sont en secondes depuis l'époque. Les valeurs vont de -2 à 2. Je peux tracer les données brutes sans trop de difficulté dans OpenGL en faisant gluOrtho(startTime, endTime, -2, 2)
. La difficulté vient quand j'essaie de mélanger ceci avec la mise à l'échelle et le dessin de Cocoa. Par souci de simplicité, j'utiliserai l'exemple d'une ligne pour simplifier les choses. Voici une ligne tracée (avec OpenGL) (2/18/09 at 13:00:08, -1.5)
-(2/18/09 13:00:13, 1.7)
ou (1234980008, -1.5)
-(1234980013, 1.7)
en quelques secondes:
Scale=1 http://ccg.cc.gt.atl.ga.us/~anjiro/tmp/scale1.png
Pour l'amour de la discussion, disons que je veux maintenant utiliser Cocoa pour superposer une ligne, exactement le même , en plus de la ligne OpenGL. Je préférerais pouvoir le faire avec exactement les mêmes coordonnées, à savoir (1234980008, -1.5) -> (1234980013, 1.7)
.
Voilà donc la première question. Maintenant, je veux voir plus de détails, donc je veux à l'échelle:
Scale=2 http://ccg.cc.gt.atl.ga.us/~anjiro/tmp/scale2.png
Je veux toujours dessiner ma même ligne de cacao, mais je dois aussi savoir, en coordonnées données, ce qui est visible dans cette fenêtre, donc je ne dois pas tirer de données supplémentaires.
J'ai essayé une variété de solutions, mais je n'arrive pas à faire quoi que ce soit au travail. Puis-je faire ceci? Si c'est le cas, comment? Si non, que devrais-je faire à la place?
Merci pour la réponse; Malheureusement, selon ce post de la liste de diffusion: http://tinyurl.com/bttty7, le rectangle des limites n'a aucun effet sur NSOpenGLViews. – Dan