2010-03-28 17 views
1

J'ai créé un tracé de courbes de Bézier et cela fonctionne bien pour tracer le chemin. Mais je ne sais pas comment je peux dessiner les points de contrôle ensemble avec le chemin. Est-ce possible ou dois-je les suivre dans une autre infrastructure de données?Comment puis-je dessiner les points de contrôle d'un chemin de Bézier en Java?

Mise à jour: La raison pour laquelle je veux dessiner les points de contrôle, c'est que je vais laisser l'utilisateur modifier les courbes en utilisant les poignées sur les points de contrôle.

Je crée le chemin avec:

Path2D.Double path = new Path2D.Double(); 
path.moveTo(0,0); 
path.curveTo(5, 6, 23, 12, 45, 54); 
path.curveTo(34, 23, 12, 34, 2, 3); 

et dessin avec:

g2.draw(path); 

Je l'ai testé avec PathIterator comme trashgod suggéré, mais il sera difficile à gérer les courbes de cette façon si je veux que l'utilisateur puisse éditer les points de contrôle.

Répondre

2

Vous pouvez obtenir un PathIterator pour référencer la matrice de coordonnées pour chaque point dans le Shape. Vous pouvez les utiliser pour dessiner des poignées de redimensionnement et des points de contrôle le long de la courbe lors de la modification. Voici un example d'édition en utilisant une implémentation de courbe personnalisée.

+0

Vous avez raison sur PathIterator, mais je pense que je vais changer ma représentation parce que je veux laisser l'utilisateur modifier les courbes, et il sera difficile à gérer avec seulement une représentation de chemin. – Jonas

+2

Pourquoi ne pas garder les deux: le 'Path' pour la commodité de rendu et la géométrie dérivée pour l'édition? Vous devez actualiser ce dernier lors de l'ajout ou de la suppression de points. – trashgod

+0

Merci! C'est le chemin à parcourir! – Jonas