2009-11-14 7 views
0

Chaque fois que je me lance dans un projet qui nécessite un rendu de formes et de lignes primitives, je me tourne généralement vers Java parce que c'est tellement simple. Pour mon dernier projet, j'ai décidé que je pourrais aimer apprendre une autre API similaire à Java Graphics2D. Je préférerais quelque chose qui fonctionnera avec C++ sur Linux. Est-ce que quelqu'un a de bonnes recommandations pour moi? Merci!Vous cherchez une alternative Java Graphics

Répondre

3

Anti-Grain geometry donne un rendu 2D de haute qualité à partir des primitives de chemin et de police, est un bon exemple d'utilisation idiomatique de modèles en C++, et semble fantastique. Il a plus de documentation sur les algorithmes que sur l'API, alors soyez prêt à regarder les exemples pour l'utiliser. Il nécessite un code spécifique au système d'exploitation pour prendre le bitmap en mémoire et le faire apparaître sur l'écran. L'autre inconvénient est que lorsque vous regardez les applications Java 2D ou GDI +, vous pensez Ewww car ils sont si mal rendus.

+0

Merci! –

2

Cairo graphics est une bibliothèque 2D multiplateforme. Il est écrit en C, bien qu'un wrapper C++ existe (cairomm). C'est sous licence LGPL.

2

Je suppose que vous n'utilisez pas X11 brut pour les fenêtres et les entrées, donc ma suggestion dépend de la boîte à outils que vous prévoyez d'utiliser.

Qt a son propre moteur de peinture. Vous pouvez peindre directement sur des fenêtres ou des widgets, ou vous pouvez peindre sur un QPicture, ce qui vous permet à la fois d'afficher, d'imprimer et de sauvegarder le résultat facilement. Pour les scènes plus complexes, vous pouvez passer à QGraphicsScene. Avec gtk, il est plus commun d'utiliser cairo, déjà mentionné par Jeff Foster

+0

Encore mieux dans Qt, si vous utilisez un QPainter sur un QGLWidget, il peut bénéficier des capacités d'anti-aliasing/multi-échantillonnage de votre carte graphique (si elle est activée) et cela peut sembler étonnant. – timday

+0

À moins de multi-échantillonner 768 fois, l'anti-crénelage ne sera pas aussi efficace que l'antialiasing basé sur la couverture de pixels, ce qui est ce que les anti-grains utilisent –

Questions connexes