Page 1 sur 1

3e planète après le soleil

Publié : jeu. 30/déc./2004 16:21
par Dr. Dri
je m'ennuyait alors voila un petit code...

Code : Tout sélectionner

#PI_180 = 0.017453

Structure point2D
  d.l ;distance (en pixels)
  a.l ;angle (en degrés)
  r.l ;epaisseur du point
      ;rayon en pixels
  g.l ;Centre de gravité
      ;pointeur vers 'point2D'
  x.l ;à utiliser si g est nul
  y.l ;à utiliser si g est nul
  c.l ;couleur
EndStructure

Procedure mod(a.l, b.l)
  If b <> 0
    a % b
    If a < 0 : a + Abs(b) : EndIf
  EndIf
  ProcedureReturn a
EndProcedure

Procedure afficherPoint2D(*p.Point2D)
  r.l = *p\r
  g.l = *p\g
  
  If g <> #NULL
    
    rad.f = *p\a * #PI_180
    
    x.l = Cos(rad) * *p\d
    y.l = Sin(rad) * *p\d
    
    While g <> #NULL
      CopyMemory( g, p.Point2D, SizeOf(Point2D) )
      
      rad = p\a * #PI_180
      
      xx = Cos(rad) * p\d
      yy = Sin(rad) * p\d
      
      x + xx
      y + yy
      
      g = p\g
    Wend
    
    x + p\x
    y + p\y
    
  Else
    
    x = *p\x
    y = *p\y
    
  EndIf
  
  x - r
  y - r
  Circle(x, y, r << 1, *p\c)
EndProcedure

Soleil.Point2D
Soleil\r = 8
Soleil\g = #NULL
Soleil\x = 400
Soleil\y = 300
Soleil\c = RGB(255, 255, 0)

Mercure.point2D
Mercure\d = 60
Mercure\a = 0
Mercure\r = 2
Mercure\g = @Soleil
Mercure\c = RGB(150, 150, 150)

Venus.point2D
Venus\d = 150
Venus\a = 0
Venus\r = 3
Venus\g = @Soleil
Venus\c = RGB(250, 150, 50)

Terre.point2D
Terre\d = 200
Terre\a = 0
Terre\r = 4
Terre\g = @Soleil
Terre\c = RGB(0, 0, 255)

Lune.point2D
Lune\d = 20
Lune\a = 0
Lune\r = 2
Lune\g = @Terre
Lune\c = RGB(250, 200, 100)

InitSprite()
InitKeyboard()
OpenScreen(800, 600, 32, "")

Repeat
  ExamineKeyboard()
  ClearScreen(0, 0, 0)
  
  If StartDrawing( ScreenOutput() )
    afficherPoint2D(Soleil)
    afficherPoint2D(Mercure)
    afficherPoint2D(Venus)
    afficherPoint2D(Terre)
    afficherPoint2D(Lune)
    StopDrawing()
  EndIf
  
  Mercure\a + 3
  Venus\a + 2
  Terre\a + 1
  Lune\a + 5
  
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Dri ^^

Publié : jeu. 30/déc./2004 16:34
par Dräc
Sympa! C'est pas mal car de tête, la distance Venus/Soleil c'est 0.72 fois celle Terre/Soleil et tu as mis 0.75.
Vous s'aviez que sur Venus une année etait plus courte qu'une journée ? :jesors:

Publié : jeu. 30/déc./2004 16:49
par Dräc
Du coup je ne sais pas si, pour les habitants de Venus, il faudra leur fêter une bonne année ou une bonne journée !?! :mrgreen:

Publié : jeu. 30/déc./2004 17:44
par Dr. Dri
lol
Pour les proportions on est forcément loin du compte....
Donc j'ai fait ca tres au feeling...

Dri ;)

Publié : jeu. 30/déc./2004 17:49
par mangatome
en tout cas c'est sympa :) ça montre aux noobs comme moi comment gérer la 2d.

Publié : jeu. 30/déc./2004 17:52
par Dr. Dri
Bah c'est surtout du bidouille bidouille...
Un peu de maths, un peu d'algo et voila le résultat

Dri ;)

Publié : jeu. 30/déc./2004 23:15
par Ouaf-Ouaf
marrant ^^

Publié : ven. 31/déc./2004 0:42
par Oliv
c'est amusant :D :D

Publié : ven. 31/déc./2004 2:57
par Backup
cool

manque les orbites elliptique

la simulation de la vrais position en fonction de la date ! :lol: :lol:


sinon je supose que tu as du te faire la meme chose en dark en 3D :D

Publié : ven. 31/déc./2004 11:00
par mangatome
darkbasic? pouah!

Publié : ven. 31/déc./2004 16:37
par Le Soldat Inconnu
Amusant

Publié : ven. 31/déc./2004 18:57
par Backup
darkbasic? pouah!
vais pas te faire la tirade du nez !!

mais DRI se debrouille plutot bien en Dark
(moi aussi d'ailleurs)

a lors peut etre que ton " pouah! " viens de ton incompetence :D

c'est pas les outils qui font le mauvais ouvrié !! :lol:


(whooaaa je suis en forme moi ! :D )
(redonne moi de ton paté "fois gras et de tes petit machin noir qui on un gout salée et une odeur de poisson )

( purée j'ai les doigts qui glisse sur le clavier maintenant )

( heu !! ... Isabelle t'es sur ? maintenant la devant tout le monde qui nous lisent ? )

Publié : ven. 31/déc./2004 18:59
par Dr. Dri
Dobro a écrit :cool

manque les orbites elliptique

la simulation de la vrais position en fonction de la date ! :lol: :lol:


sinon je supose que tu as du te faire la meme chose en dark en 3D :D
Manqué ^^
je touche pas à la 3D mouah :P
Sinon pour une trajectoire elliptique il suffit de changer le champ d en deux champs dx et dy ^^ et d'adapter les formules de rotation...

Aussi je m'ennuyais vraiment donc c'est pas un de mes anciens codes en DB :P

Dri ;)

Publié : ven. 31/déc./2004 19:14
par mangatome
disons que j'ai vu nombre de codeurs DB cracher littéralement sur darkbasic après avoir testé blitz3d ... j'ai regardé DB (syntaxe surtout) et je me suis dit pouah. voila tout :) après question de goût.