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... ) :mrgreen:

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 .. :roll:

c'est d'une tel évidence, que je ne comprends meme pas ton allusion :mrgreen:

d'ailleurs le model

Code : Tout sélectionner

rectangle(150,20,80,80,rgb(0,110,0),45)
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é. :D

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é. :D
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. :mrgreen:

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. :wink:

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é ! :mrgreen:

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.
:roll: 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

Code : Tout sélectionner

py2=py2+penche
py3=py3+penche
px1=px1+penche
px2=px2+penche
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.