[DEFI] Dessiner

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: [DEFI] Dessiner

Message 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:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [DEFI] Dessiner

Message par Backup »

...
Dernière modification par Backup le mar. 19/août/2014 9:45, modifié 2 fois.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: [DEFI] Dessiner

Message par G-Rom »

Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [DEFI] Dessiner

Message 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 ;)
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: [DEFI] Dessiner

Message 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.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: [DEFI] Dessiner

Message 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 

Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: [DEFI] Dessiner

Message 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.
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: [DEFI] Dessiner

Message 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
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [DEFI] Dessiner

Message par Backup »

....
Dernière modification par Backup le mar. 19/août/2014 9:46, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [DEFI] Dessiner

Message par Backup »

...
Dernière modification par Backup le mar. 19/août/2014 9:46, modifié 1 fois.
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: [DEFI] Dessiner

Message 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:
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
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: [DEFI] Dessiner

Message 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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [DEFI] Dessiner

Message 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 !
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: [DEFI] Dessiner

Message 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...
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
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: [DEFI] Dessiner

Message 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.
Répondre