Page 2 sur 3
Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 16:36
par G-Rom
Les fonctions cos/sin peuvent être fait a la main...
J'ajouterais au défis, comment remplir ton rectangle avec une image de ton choix sans utilisé une seule fonction de dessin ( plot , line, box, etc... )

Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 16:37
par Backup
...
Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 16:54
par G-Rom
Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 17:18
par Backup
ha mais pardon !!
mes angles sont droits !!
c'est parceque la représentation se fait sur ton ecran qui lui n'est pas un carré
alors forcement, il peut y avoir sur certain "angle" un effet de parallélogramme...
mais c'est simplement du au fait que ton ecran n'est pas carré , et que si tu ajoute une valeur en verticale
ça n'a pas le meme effet qu'en horizontale ..
c'est d'une tel évidence, que je ne comprends meme pas ton allusion
d'ailleurs le model
est bien incliné comme il faut !!
meme si disproportionné, car il s'agit d'un carré ... (80x80), a cause de l'ecran
le defis n'est pas de pouvoir faire une rotation par degres ....
mais juste de pouvoir le tourner ... c'est ce que je fait, d'ailleurs ma variable s'appelle "Penche" .. pas degres

Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 17:25
par Mesa
@Dobro
Désolé Dobro, mais ça donne bien des parallélogrammes pas des rectangles.
@G-ROM
Les fonctions cos/sin peuvent être fait a la main...
Attention, pas de table de sin ou autre... et je n'ai pas utilisé de développement limité non plus, ni d'exponentiel d'ailleurs.
.
J'ajouterais au défis, comment remplir ton rectangle avec une image de ton choix sans utilisé une seule fonction de dessin ( plot , line, box, etc... )
J'aimerais bien voir ce code, toujours avec un rectangle penché.
M.
Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 18:06
par G-Rom
J'aimerais bien voir ce code, toujours avec un rectangle penché.
C'est le but, cela s'appelle de la rastérization, le gars qui cherche un peu sur le forum, devrais trouvé un de mes vieux code qui le fait.
Super optimisé , pas une seule fonction de trigo "visible" dans le code :
Code : Tout sélectionner
InitSprite()
OpenWindow(0,0,0,800,600,"")
OpenWindowedScreen(WindowID(0),0,0,800,600)
X1.f = 100
Y1.f = 100
X2.f = 600
Y2.f = 200
MY_FUCKING_ANGLE.f = 0
MY_FUCKING_CHEAT = CreateSprite(#PB_Any,Abs(X2-X1),Abs(Y2-X1))
MY_FUCKING_TIMER.f = 0
StartDrawing(SpriteOutput(MY_FUCKING_CHEAT))
FillArea(0,0,$BADA55)
StopDrawing()
DOBRO_IS_CHEATER = #True
While DOBRO_IS_CHEATER
event = WindowEvent()
If event = #PB_Event_CloseWindow
DOBRO_IS_CHEATER = #True ; no change...
Break
EndIf
A.i = ElapsedMilliseconds()
MY_FUCKING_ANGLE + 100 * MY_FUCKING_TIMER
ClearScreen($BADF00D)
RotateSprite(MY_FUCKING_CHEAT,MY_FUCKING_ANGLE,#PB_Absolute)
DisplaySprite(MY_FUCKING_CHEAT,200,200)
FlipBuffers()
MY_FUCKING_TIMER = (ElapsedMilliseconds() - A) / 1000
Wend
Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 18:12
par Mesa
@G-Rom
Je ne vois pas de remplissage avec une image et puis surtout les sprites sont interdits bien-sûr, pour le défi.
M.
Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 18:49
par GallyHC
Bonjour,
Pour la création du rectangle + remplissagle il y a le scanline, j'avais fait y a longtemps cela en VB6 (je suis un fou)...
Cordialement,
GallyHC
Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 18:52
par Backup
....
Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 18:59
par Backup
...
Re: [DEFI] Dessiner
Publié : jeu. 27/févr./2014 20:08
par Fig
Perso j'utiliserai le tracé de ligne et de cercle de Bresenham (pas Andres pour le cercle) pour éviter les sin/cos...
Mais j'ai la flemme, je refais la cuisine depuis quelques jours et je suis HS.

Re: [DEFI] Dessiner
Publié : ven. 28/févr./2014 11:01
par Mesa
@Dobro
Les angles ne sont toujours pas droit (même si ça ne se voit pas bien).
@Fig
Les algorithmes de Bresenham et d'Andres calculent les coordonnées d'un point par rapport aux coordonnées du point précédent. On peut dessiner une ligne point par point (lineXY utilise probablement Bresenham) ou un cercle point par point. Pour utiliser ces algorithmes, il faut une équation paramétrique continue et dérivable. On peut donc dessiner une doite, un cercle, une ellipse, un cône, mais je n'ai jamais vu d'algorithmes de Bresenham pour un rectangle, carré, polygone, sans un effort de programmation important.
De toute façon, pour résoudre ce défi, un niveau de 1ére S suffit.
M.
Re: [DEFI] Dessiner
Publié : ven. 28/févr./2014 11:05
par Backup
Mesa a écrit :@Dobro
Les angles ne sont toujours pas droit (même si ça ne se voit pas bien).
comme tu ne peux pas prouver ce que tu avances , j'ai gagné !
j'ai gagné !
j'ai gagné !
j'ai gagné !
j'ai gagné ! .... Na !
Re: [DEFI] Dessiner
Publié : ven. 28/févr./2014 11:35
par Fig
Mesa a écrit :@Fig
Les algorithmes de Bresenham et d'Andres calculent les coordonnées d'un point par rapport aux coordonnées du point précédent. On peut dessiner une ligne point par point (lineXY utilise probablement Bresenham) ou un cercle point par point. Pour utiliser ces algorithmes, il faut une équation paramétrique continue et dérivable. On peut donc dessiner une doite, un cercle, une ellipse, un cône, mais je n'ai jamais vu d'algorithmes de Bresenham pour un rectangle, carré, polygone, sans un effort de programmation important.
De toute façon, pour résoudre ce défi, un niveau de 1ére S suffit.
M.

C'est comme ça que j'aurai résolu le problème personnellement en tout cas. L'effort de programmation n'est pas très important et puis... Je n'ai pas fait S à l'école alors...
Re: [DEFI] Dessiner
Publié : ven. 28/févr./2014 12:12
par Mesa
@dobro
C'est une translation pas une rotation, ça ne donne un angle droit que par chance, une fois de temps en temps.
@Fig
Je cherche cet algorithme (dessiner un polygone avec bresenham), tu peux essayer d'en poster un en purebasic, stp ?
M.