Tracés de cercles récursifs

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
threedslider
Messages : 455
Inscription : dim. 01/juil./2018 22:38

Tracés de cercles récursifs

Message par threedslider »

Hello, voici un code dont j'aimerais vous partager c'est des tracés des cercles récursifs :)

Code : Tout sélectionner

; Based on book : Algorithmes et structures de données by Michel Divay (C programming)
; Coded and adapted by threedslider 08.07.2022

Procedure Cercle(X.i, Y.i, R.i)
  For n=0 To 1800
        cx = R * Cos(n)
        cy= R * Sin(n)
        Plot(cx+X,cy+Y,RGB(255,0,0)) 
      Next
EndProcedure

Procedure DeuxCercles(X.i, Y.i, R.i)
  _r.i = 0
  If R > 10
      cercle(X, Y, R)    
      _r = R / 2
      DeuxCercles(X+_r, Y, _r)
      DeuxCercles(X-_r, Y, _r)
    EndIf       
EndProcedure
  
If OpenWindow(0, 0, 0, 600, 600, "Two circles in recursive", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If CreateImage(0, 600, 600) And StartDrawing(ImageOutput(0))
      
      DeuxCercles(300,300,200)
    
      StopDrawing() 
      ImageGadget(0, 0, 0, 200, 200, ImageID(0))
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
EndIf
Avatar de l’utilisateur
threedslider
Messages : 455
Inscription : dim. 01/juil./2018 22:38

Re: Tracés de cercles récursifs

Message par threedslider »

Un autre algorithme mais cette fois-ci trois cercles en récursif.

Code : Tout sélectionner

; Based on book : Algorithmes et structures de données by Michel Divay (C programming)
; Coded and adapted by threedslider 08.07.2022

Procedure Cercle(X.i, Y.i, R.i)
  For n=0 To 1800
        cx = R * Cos(n)
        cy = R * Sin(n)
        Plot(cx+X,cy+Y,RGB(255,0,0)) 
      Next
EndProcedure

Procedure TroisCercles(X.i, Y.i, R.i)
  _r.i = 0
  If R > 10
      cercle(X, Y, R)
      _r = Int((2*Sqr(3.0)-3)*R)
      H = R-_r
      TroisCercles(X-H, Y, _r)
      TroisCercles(X+H/2, Y+_r, _r)
      TroisCercles(X+H/2, Y-_r, _r)
    EndIf       
EndProcedure
  
If OpenWindow(0, 0, 0, 600, 600, "Three circles in recursive", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If CreateImage(0, 600, 600) And StartDrawing(ImageOutput(0))
      
      TroisCercles(300,300,200)
    
      StopDrawing() 
      ImageGadget(0, 0, 0, 200, 200, ImageID(0))
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
EndIf
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Re: Tracés de cercles récursifs

Message par SPH »

@threedslider : tu sais combien de canons de fusils sont pointés vers nous dans ton 2eme code ?

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
threedslider
Messages : 455
Inscription : dim. 01/juil./2018 22:38

Re: Tracés de cercles récursifs

Message par threedslider »

3, je ne sais pas si c'est ça dont tu parles en gros, pourquoi ? Cela tout dépend de canon de fusil, en général c'est deux mais ya aussi trois.

https://cdn1.roumaillac.com/481975-thic ... k22428.jpg
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Re: Tracés de cercles récursifs

Message par SPH »

Réponse : 39 (avec ton fusil a 3 canons).

Bon, en tout cas, j'ai été impressionné par ton code qui est très court.

Congratz 😎

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
threedslider
Messages : 455
Inscription : dim. 01/juil./2018 22:38

Re: Tracés de cercles récursifs

Message par threedslider »

ah ok je m'en doutais :roll:

Merci, oui je suis impressionné moi aussi et le Purebasic c'est top pour moi :D
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Tracés de cercles récursifs

Message par Kwai chang caine »

Jolis effets :wink:
Je ne sais pas pourquoi, mais tous ces yeux...ça m'a fait penser à ma jeunesse 8O

Image

Merci du partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
threedslider
Messages : 455
Inscription : dim. 01/juil./2018 22:38

Re: Tracés de cercles récursifs

Message par threedslider »

Merci Kwai chang caine 8)

Oui ça ressemble étrangement à cette image 8O
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Tracés de cercles récursifs

Message par Ollivier »

S'il y en a bien un qui a offert de l'oxygène à la France !
https://www.youtube.com/watch?v=Ii5BBMJUWW0

Et bon courage, et bonne passion en prog à threedslider !
Avatar de l’utilisateur
threedslider
Messages : 455
Inscription : dim. 01/juil./2018 22:38

Re: Tracés de cercles récursifs

Message par threedslider »

Merci @Ollivier ainsi que le lien :)
Répondre