Je me demandais comment les applications de dessin dessinent tout le temps que la souris est en bas sans avoir d'espaces vides. Ce que je veux dire est, par exemple, si le programme n'a dessiné des cercles qu'à la coordonnée X, y de la souris, alors si la souris est allée trop vite, cela ressemblerait à un tas de petits cercles plutôt qu'à une belle ligne continue. Comment cela peut-il être fait sans dessiner constamment une courte ligne droite entre où la souris était il y a 0,001 secondes et où la souris est maintenant. MerciDessiner en continu dans l'application de dessin
Répondre
Il ne peut pas se faire sans dessin constamment une ligne entre le point de la souris actuelle et le point précédent, ce qui est pourquoi est-ce que les programmes de dessin en général font faire.
Les programmes de dessin plus élaborés s'adapteront aux lignes courbes à plusieurs points précédents pour obtenir un trait de dessin plus naturel, mais le principe est le même.
Mise à jour: Basé sur un commentaire, il semble que vous ayez un temporisateur impliqué dans votre code de dessin. Ceci est certainement inutile, puisque votre application va générer un événement MouseMove chaque fois que la souris est déplacée, et vous pouvez utiliser cet événement pour dessiner la ligne suivante.
Ligne, ou, une sorte de [courbe] (http://en.wikipedia.org/wiki/B%C3%A9zier_curve) –
"Bezier" = "ajuster des lignes sinueuses à plusieurs points". :) – MusiGenesis
Serait-il une bonne idée de créer des tableaux de ces derniers comme des instructions pour générer des lignes, puis les pousser dans une file d'attente pour chaque opération, puis les enlever pour une annulation? – jmasterx
Vous pouvez dessiner une ligne courte courbe entre l'endroit où la souris était il y a 0,001 secondes et où la souris est maintenant.
Les positions de la souris ne sont pas continues, si vous le déplacez plus vite que très lentement, vous obtiendrez des points discrets non connectés. Vous devez interpoler entre ces points en utilisant votre méthode préférée.
Bon alors la façon dont je le fais en utilisant une minuterie et en dessinant des lignes droites courtes est correcte? – jmasterx
Vous pouvez utiliser une courbe de Bézier http://en.wikipedia.org/wiki/B%C3%A9zier_curve pour avoir un bon effet. –
Vous n'avez pas besoin d'une minuterie. Vous avez juste besoin d'enregistrer l'emplacement de la souris précédente, puis dessinez une ligne à l'emplacement de la souris actuelle. Si vous faites une interpolation plus chic (disons, cubique), vous avez juste besoin de garder la trace de plus de points dans le passé. –
- 1. Dessin d'un rectangle continu
- 2. dessin au trait continu au QT
- 3. Dessiner une ligne dans Vue: Non Dessin
- 4. Comment dessiner un dessin sur une vue
- 5. Dessin Arc en Java
- 6. Dessin Texte en miroir
- 7. dessin pixelwise en pyglet (python)
- 8. Dessin en C# en couches
- 9. Dessin UITableViewCell dans IB
- 10. Exécution de l'application en continu
- 11. En boucle en continu UIScrollViews?
- 12. graphiques Dessin dans Django
- 13. Dessiner en haut d'une image en Javascript
- 14. tuyaux de diffusion en continu en Python
- 15. IE Méthodes de dessin en CSS/Javascript
- 16. Arbres de dessin en Common Lisp
- 17. Dessin de polygones semi-transparents dans PIL
- 18. Dessin dans l'iPad
- 19. Réponse en continu dans Rails/Mongrel
- 20. Diffusion vidéo en continu dans iphone
- 21. graphique mobile en continu dans Android
- 22. Dessin de plusieurs sphères dans OpenGL
- 23. dessiner un pixbuf sur une zone de dessin en utilisant pygtk et glade
- 24. Redessiner en continu l'élément wxPython
- 25. Dessin UIImage dans CurrentContext
- 26. Dessin sur vidéo dans C#
- 27. Dessin de lignes 3D dans WPF
- 28. Dessin de plusieurs curseurs dans un NSTextView
- 29. imprimer plusieurs documents en continu
- 30. tableau Dessin dans une boîte de dialogue
@everyone: OP demande comment fonctionne l'outil * brush *, pas l'outil * line * –
@BlueRaja, merci, j'ai mal compris :) –
@BlueRaja: qu'est-ce qui vous fait penser qu'il/elle demande l'outil de pinceau? – MusiGenesis