@Dobro
Tes polygones sont réguliers, tu devrais essayer de calculer les coordonées des points et de les filer à la fonction Polygon_() pour voir ^^.
Dri
Polygons
@Dobro
Voila ce que je suggérai
Dri 
Voila ce que je suggérai
Code : Tout sélectionner
#PI=3.1415926
Procedure PolygoneRegulier(x.l, y.l, width.l, sides.l, angle.f, color.l)
Protected hDC.l, t.l, alpha.f, d.f, c.f
!extrn _PB_2DDrawing_CurrentDC
!MOV eax, dword [_PB_2DDrawing_CurrentDC]
!MOV [esp+24], eax
If hDC And sides > 2
angle * 0.01745329
Dim Points.Point(sides)
FrontColor(Red(color), Green(color), Blue(color))
alpha = (2*#PI) / sides
d = angle
t = 0
While t < sides
c = Cos(d) * width
s = Sin(d) * width
Points(t)\x = x + s
Points(t)\y = y + c
t + 1
d + alpha
Wend
Polygon_(hDC, Points(), sides)
EndIf
EndProcedure
InitSprite()
InitKeyboard()
ExamineDesktops()
OpenWindow(1, 0, 0, DesktopWidth(0), DesktopHeight(0), #PB_Window_BorderLess, "")
OpenWindowedScreen(WindowID(), 0, 0, DesktopWidth(0), DesktopHeight(0), 1, 0, 0)
largeur.l = 100
rotation.f = 180
nb_cotes.l = 4
dl = 1
Repeat
rotation + 1
If rotation > 360
rotation - 360
EndIf
largeur + dl
If largeur = 50
dl = 1
EndIf
If largeur = 200
dl = -1
EndIf
If StartDrawing( ScreenOutput() )
DrawText(Str(rotation))
PolygoneRegulier(400, 300, largeur, nb_cotes, rotation, $80FFFF)
StopDrawing()
EndIf
FlipBuffers()
ClearScreen(0, 0, 0)
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)

tu avais ecrit
pour obtenir un effet de changement de taille, il suffisait de changer le parametre taille de mon code , le fait de passer par une API , n'est pas forcement un plus !
par contre je ne pense pas possible de pouvoir faire des polygones a multiple cotes parametrable et irregulier avec une procedure !!!
car on ne peut pas savoir a l'avance le nombre de cote choisi par le programmeur, et donc entrer une valeur differente de longeurs des segments de droite composant le polygone !!
au niveau vitesse ça doit etre pareil !!
vous avez bien reessayé mon dernier code au moins !?
vous vous etes apercu qu'il y a une procedure suplementaire pour le remplissage !!
procedure tres tres utile car contrairement au Fillarea , elle n'a pas besoin de couleur de bord pour s'arreter !
elle s'arrete des que la couleur change !!
je trouve qu'elle devrai rempacer le Fill AREA qui est mal foutu pour ça ! ..

@ Dri : je ne doutais pas en tout cas de tes capacites a pondre un code
conci !!
@ Kelly une fonction qui prend en compte tous les cas de figure en matiere de polygone , c'est plus une fonction , c'est un Programme !
tu m'a juste donné l'envie de ne plus repondre a tes questions !
a part ça ..... ça va !
cette exemple aussi !!Tes polygones sont réguliers,
pour obtenir un effet de changement de taille, il suffisait de changer le parametre taille de mon code , le fait de passer par une API , n'est pas forcement un plus !
par contre je ne pense pas possible de pouvoir faire des polygones a multiple cotes parametrable et irregulier avec une procedure !!!
car on ne peut pas savoir a l'avance le nombre de cote choisi par le programmeur, et donc entrer une valeur differente de longeurs des segments de droite composant le polygone !!
au niveau vitesse ça doit etre pareil !!
vous avez bien reessayé mon dernier code au moins !?
vous vous etes apercu qu'il y a une procedure suplementaire pour le remplissage !!
procedure tres tres utile car contrairement au Fillarea , elle n'a pas besoin de couleur de bord pour s'arreter !
elle s'arrete des que la couleur change !!
je trouve qu'elle devrai rempacer le Fill AREA qui est mal foutu pour ça ! ..

@ Dri : je ne doutais pas en tout cas de tes capacites a pondre un code
conci !!

@ Kelly une fonction qui prend en compte tous les cas de figure en matiere de polygone , c'est plus une fonction , c'est un Programme !
tu m'a juste donné l'envie de ne plus repondre a tes questions !
a part ça ..... ça va !
