2012-03-26 1 views
1

Est-ce que quelqu'un connaît un algorithme décent pour dessiner des courbes de Bézier quadratiques (lisses) anti-aliasées dans un raster? Je pourrais simplement les dessiner comme des vecteurs et ensuite copier l'image à un raster.Comment dessiner une courbe de bézier anti-aliasée dans raster?

Existe-t-il un algorithme intelligent mais librement disponible pour dessiner la courbe directement sur les pixels? J'utilise actuellement l'algorithme implémenté ici: http://www.bytearray.org/?p=67 quadBezier() Je me demande s'il existe un moyen de le changer pour rendre le bézier anti-aliasé? Merci d'avance. Je le fais à des fins d'apprentissage et parce que j'espère que ce serait plus rapide que d'utiliser les pixels de copie d'une option de forme. Voici un exemple montrant la Bézier none lisse est plus rapide que la Bézier régulière: http://lab.generalrelativity.org/raster/

+0

n'est pas anti-alias une fonction de post-traitement? en tout cas, ce n'est pas quelque chose de trivial à mettre en œuvre - une recherche générale pour l'implémenter devrait vous donner une idée de ce qui est impliqué. il suffit d'utiliser 'draw()' – divillysausages

Répondre

4

La mise en œuvre de votre propre algorithme sera certainement plus lent que d'utiliser bitmapData.draw(shape). Lorsque vous utilisez graphics.lineTo, graphics.curveTo etc., vous construisez un modèle, mais vous ne dessinez rien pour le moment. Ce n'est qu'après que la forme a été ajoutée à la scène, et pendant la phase suivante que le modèle est traversé et les pixels dessinés par un algorithme rapide écrit en C. Lorsque vous utilisez bitmapData.draw pour dessiner un vecteur dans un bitmap, il utilisera le même code natif. Donc, ce n'est pas comme si vous dessiniez quoi que ce soit deux fois, comme vous pouvez l'imaginer, et il sera difficile (ou impossible) de battre pour la vitesse en mettant en œuvre rien de rien dans AS3 seul.

+1

J'ai effectué quelques tests (pour la vitesse) et j'ai découvert que vous aviez raison. J'ai aussi découvert comment fonctionne l'algorithme pour dessiner bezier. Merci pour l'explication approfondie. – zehelvion

Questions connexes