Les autres boutons, sont ok.
Trait, courbe, ligne, points tillés, etc...
Re: Trouver un point entre deux points
ça plante dès qu'on essaie de cliquer avec le bouton gauche de la souris 
Les autres boutons, sont ok.
Les autres boutons, sont ok.
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Trouver un point entre deux points
J'ai oublié de dire qu'il faut activer la gestion des threads 
Re: Trouver un point entre deux points
j'aurai pu y penser ^^
C'est effectivement mieux avec la gestion des threads
C'est effectivement mieux avec la gestion des threads
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Trouver un point entre deux points
Bon, j'ai retesté et le résultat est top pour le moment, avec des lignes de 1 pixels avec AA 
J'attends vraiment la suite avec impatience, Djes
J'attends vraiment la suite avec impatience, Djes
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Trouver un point entre deux points
Faudra attendre un peu, je suis en voyage pour une semaine... 
Re: Trouver un point entre deux points
Bien sûr, pas de soucis, c'est juste qu'en testant j'ai trouvé que ça avait vraiment du potentieldjes a écrit :Faudra attendre un peu, je suis en voyage pour une semaine...
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Trouver un point entre deux points
Merci ! J'espère pouvoir être utile. Le bézier est assez hard à débugger, je crois que je vais devoir me plonger dans l'algo pour voir où ça pèche.
Re: Trouver un point entre deux points
Bon, j'ai laissé tomber le bézier pour l'instant, et refait une petite fonction 'curve' qui crée une courbe entre deux mouvements de la souris en fonction de la direction prise par le 3ème point. Ca semble bien fonctionner, la courbe est douce même quand les mouvements de la souris sont rapides, mais il faudrait tester avec une tablette. L'antialias n'est pas réussi.
J'ai laissé plein de code inutile pour l'instant, dont des exemples de Catmull-Rom qui utilisent deux points directeurs et qui permettraient d'améliorer la fonction (en se servant du point précédent ET du point suivant). Il y a des programmes fonctionnels de Catmull-Rom en PB sur le forum (Typhoon et le module de Comtois) dont on peut s'inspirer.
A suivre : si j'y arrive, une fonction curve qui fait tout, "à la" Bresenham, et avec antialiasing tant qu'à faire...
J'ai laissé plein de code inutile pour l'instant, dont des exemples de Catmull-Rom qui utilisent deux points directeurs et qui permettraient d'améliorer la fonction (en se servant du point précédent ET du point suivant). Il y a des programmes fonctionnels de Catmull-Rom en PB sur le forum (Typhoon et le module de Comtois) dont on peut s'inspirer.
A suivre : si j'y arrive, une fonction curve qui fait tout, "à la" Bresenham, et avec antialiasing tant qu'à faire...
Re: Trouver un point entre deux points
salut
j'ai testé la dernière version avec ma tablette.
J'ai l'impression que les courbes ne sont pas lissées, car le rendu final est comme parcouru de spasmes ^^
Voici une image pour mieux comprendre le résultat :

On voit sur les courbes des sortes de bosses. ça doit sans doute être lié au fait qu'à la tablette, on peut dessiner plus vite qu'à la souris, mais même lorsque je vais lentement ou à la souris, j'obtiens des résultats similaires ^^.
j'ai testé la dernière version avec ma tablette.
J'ai l'impression que les courbes ne sont pas lissées, car le rendu final est comme parcouru de spasmes ^^
Voici une image pour mieux comprendre le résultat :

On voit sur les courbes des sortes de bosses. ça doit sans doute être lié au fait qu'à la tablette, on peut dessiner plus vite qu'à la souris, mais même lorsque je vais lentement ou à la souris, j'obtiens des résultats similaires ^^.
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Trouver un point entre deux points
Merci d'avoir testé, c'est ce qu'il me fallait. L'algo crée une courbe à partir de 3 points, entre le 1er et le 2ème, et sa forme optimale est à déterminer ensemble. Mets ça aux alentours du CLS (lignes 580...) pour voir sa forme :
Même si elle ne devrait pas être parfaite, je me demande s'il n'y a pas un petit bug dans certains cas quand même...
Code : Tout sélectionner
;-CLS
StartDrawing(CanvasOutput(0))
;Box(0, 0, 800, 600, #White)
;plotCubicBezierSegAA(x, y, 400, 200, 400, 300, 400, 400, $FF)
x1 = 200 : y1 = 500 : Plot(x1, y1, #Blue)
x2 = 400 : y2 = 400 : Plot(x2, y2, #Blue)
x3 = 500 : y3 = 500 : Plot(x3, y3, #Blue)
Curve(x1, y1, x2, y2, x3, y3, #Red)
- falsam
- Messages : 7334
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Trouver un point entre deux points
Hello Spock. J'ai essayé ton code. Si on va trop cite et c'est le cas de Blendman, l'écartement entres les points n'est pas identique.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Trouver un point entre deux points
@djes : ta courbe, avec ton exemple semble bien, mais effectivement, dès que je dessine, les courbes obtenues ont des bosses ^^
@Dobro : sympa tes deux codes. Le bézier est vraiment pas mal, on peut régler en plus le nombre de "segments" (le i, dans la procédure bézier).
Par contre, ce qu'on cherche à obtenir, c'est un joli trait, avec AA et tout
.
@Dobro : sympa tes deux codes. Le bézier est vraiment pas mal, on peut régler en plus le nombre de "segments" (le i, dans la procédure bézier).
Par contre, ce qu'on cherche à obtenir, c'est un joli trait, avec AA et tout
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Trait, courbe, ligne, points tillés, etc...
Héhé, les bosses devraient disparaître avec le catmull... (j'espère) lol. Merci pour le bezier, Spock !
Re: Trait, courbe, ligne, points tillés, etc...
Blendman> Code mis à jour, pourrais-tu retester, stp ? Merci
Re: Trait, courbe, ligne, points tillés, etc...
@dobro : le problème de cette méthode c'est que pour les grandes images, ça devient vite ingérable ^^ (imagines si tu dessines sur une images de 3000*3000 par exemple, et ça m'arrive
).
@djes : c'est mieux, j'ai beaucoup moins de bosses ^^ :

Il reste encore de temps en temps des légères bosses et l'AA semble moins bon que le 1er code que tu avais fait, mais j'imagine que ça va encore un peu changé
.
Sinon, je me disais qu'on pourrait peut-être regardé du coté de Pencil, mypaint ou krita, qui sont opensources, pour voir comment ils procédent. Car tous les trois ont une gestion du trait qui est vraiment bien (lissé et joli AA)
@djes : c'est mieux, j'ai beaucoup moins de bosses ^^ :

Il reste encore de temps en temps des légères bosses et l'AA semble moins bon que le 1er code que tu avais fait, mais j'imagine que ça va encore un peu changé
Sinon, je me disais qu'on pourrait peut-être regardé du coté de Pencil, mypaint ou krita, qui sont opensources, pour voir comment ils procédent. Car tous les trois ont une gestion du trait qui est vraiment bien (lissé et joli AA)
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english