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

pas toiet qui ch'est qui na gagné ?? gna gna gna ...
Code : Tout sélectionner
rectangle(150,20,80,80,rgb(0,110,0),45)
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.Les fonctions cos/sin peuvent être fait a la main...
J'aimerais bien voir ce code, toujours avec un rectangle penché.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... )
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.J'aimerais bien voir ce code, toujours avec un rectangle penché.![]()
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 a écrit :@Dobro
Les angles ne sont toujours pas droit (même si ça ne se voit pas bien).
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.
Code : Tout sélectionner
py2=py2+penche
py3=py3+penche
px1=px1+penche
px2=px2+penche