
[DEFI] Dessiner
Re: [DEFI] Dessiner
bon , je donne ma langue a la chatte ! 

Re: [DEFI] Dessiner
J'aurais bien voulu participer, mais il y a un truc qui m'échappe dans l'énoncé, du coup j'ai renoncé.
J'ai quand même regardé du côté de Bresenham car j'adore cet algo, et j'ai trouvé deux très beaux liens :
Pleins d'algos pour le tracé de lignes, de cercles, de courbes avec ou sans antialiasing:
http://members.chello.at/easyfilter/bresenham.html
Un vieil algo qui mériterait (peut-être) d'être remis au goût du jour.
http://www.zoo.co.uk/~murphy/thickline/index.html
J'ai quand même regardé du côté de Bresenham car j'adore cet algo, et j'ai trouvé deux très beaux liens :
Pleins d'algos pour le tracé de lignes, de cercles, de courbes avec ou sans antialiasing:
http://members.chello.at/easyfilter/bresenham.html
Un vieil algo qui mériterait (peut-être) d'être remis au goût du jour.
http://www.zoo.co.uk/~murphy/thickline/index.html
Re: [DEFI] Dessiner
Il faut trouver une procédure comme celle-ci:
Procedure rectangle(X0,Y0, X1, Y1, E, Couleur)
...
EndProcedure
A(X0;Y0) et B(X1;Y1) sont fixés, par exemple A(100,100) et B(200,50)
E est l'"épaisseur du rectangle", par exemple E=30, et Couleur est la couleur du trait.
Par exemple : rectangle(100,100,200, 50, 30, RGB(255,255,0))
Il faut donc trouver les coordonnées des 2 points manquants C(x2,y2) et D(x3,y3) pour former et dessiner ce rectangle.
Sauf que dans cette procédure, il ne faut utiliser que : +, -, *, /, sqr, line() et lineXY().
Si vous regarder le 1er code de cette page
http://www.purebasic.fr/english/viewtop ... 40&t=58231
vous serez capable de faire une rotation d'un point d'un angle de 90° très facilement...
Vous pouvez donc dessiner un carré très facilement aussi,non ?
Alors pourquoi pas un rectangle !
M.
Procedure rectangle(X0,Y0, X1, Y1, E, Couleur)
...
EndProcedure
A(X0;Y0) et B(X1;Y1) sont fixés, par exemple A(100,100) et B(200,50)
E est l'"épaisseur du rectangle", par exemple E=30, et Couleur est la couleur du trait.
Par exemple : rectangle(100,100,200, 50, 30, RGB(255,255,0))
Il faut donc trouver les coordonnées des 2 points manquants C(x2,y2) et D(x3,y3) pour former et dessiner ce rectangle.
Sauf que dans cette procédure, il ne faut utiliser que : +, -, *, /, sqr, line() et lineXY().
UN INDICE
A(x0,y0)_________________B(x1,y1)
.........|......................|
.........|......................|
.........|......................|
C(x2,y2)_________________D(x3,y3)
Si vous regarder le 1er code de cette page
http://www.purebasic.fr/english/viewtop ... 40&t=58231
vous serez capable de faire une rotation d'un point d'un angle de 90° très facilement...
Vous pouvez donc dessiner un carré très facilement aussi,non ?
Alors pourquoi pas un rectangle !
M.
Re: [DEFI] Dessiner
tu peux rotationer de 90 deg , mais pas de 33 , 54 ...
Re: [DEFI] Dessiner
Peut-être pas, mais des sous multiples de 90, avec un diviseur, ça doit être faisable !Dobro a écrit :tu peux rotationer de 90 deg , mais pas de 33 , 54 ...
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: [DEFI] Dessiner
Le premier est un très bon lien.djes a écrit :J'aurais bien voulu participer, mais il y a un truc qui m'échappe dans l'énoncé, du coup j'ai renoncé.
J'ai quand même regardé du côté de Bresenham car j'adore cet algo, et j'ai trouvé deux très beaux liens :
Pleins d'algos pour le tracé de lignes, de cercles, de courbes avec ou sans antialiasing:
http://members.chello.at/easyfilter/bresenham.html
Un vieil algo qui mériterait (peut-être) d'être remis au goût du jour.
http://www.zoo.co.uk/~murphy/thickline/index.html
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
Re: [DEFI] Dessiner
@Dobro
L'indice ne parle pas de rotatutionaliser le rectangle en entier mais 1 point seulement...
@Fig
Je vais traduire le code C en PB et commencer une bibliothèque 2D que j'appellerai "Shape".
L'indice ne parle pas de rotatutionaliser le rectangle en entier mais 1 point seulement...

@Fig
Je vais traduire le code C en PB et commencer une bibliothèque 2D que j'appellerai "Shape".
Re: [DEFI] Dessiner
Je crois que Bresenham (le cercle au moins) a déja été codé... Fait une recherche
Sinon, tu nous le donne le code de ce défit ?

Sinon, tu nous le donne le code de ce défit ?

Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
Re: [DEFI] Dessiner
Et voilà.
La réponse est dans le premier post.
Mesa.
La réponse est dans le premier post.

Mesa.