Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Pascal Discussion :

Un peu de math en Flash


Sujet :

Flash Pascal

  1. #1
    Expert éminent sénior
    Un peu de math en Flash
    Après avoir vu cette petite vidéo amusante


    je me suis amusé à programmer cela en Flash



    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    program Micmaths;
     
    // (c)2015 Paul TOTH, Execute SARL
     
    // d'après la vidéo MicMaths  https://www.youtube.com/watch?v=-X49VQgi86E
     
    {$FRAME_WIDTH 480}
    {$FRAME_HEIGHT 480}
    {$FRAME_RATE 12}
    {$BACKGROUND $FFFFFF}
     
    uses
      Flash8;
     
    const
    //  NOMBRE = 2;
    //  MODULO = 160;
     
    //  NOMBRE = 79;
    //  MODULO = 160;
     
    //  NOMBRE = 107;
    //  MODULO = 160;
     
    //  NOMBRE = 119;
     // MODULO = 160;
     
    //  NOMBRE = 120;
    //  MODULO = 122;
     
    //  NOMBRE = 120;
    //  MODULO = 231;
     
      NOMBRE = 120;
      MODULO = 340;
     
    var
      BASE   : Number;
      ANGLE  : Number;
      i      : Integer;
      a, s, c: Number;
      x1, y1 : Number;
      x2, y2 : Number;
    begin
      BASE   := -Math.PI/2;
      ANGLE  :=  2*Math.PI;
     
      _root.LineStyle(0, clBlack);
      for i := 1 to MODULO do
      begin
     
        a := BASE + ANGLE/MODULO * i;
        x1 := 240 + 240 * cos(a);
        y1 := 240 + 240 * sin(a);
     
        a := BASE + ANGLE/MODULO * (i * NOMBRE);
        x2 := 240 + 240 * cos(a);
        y2 := 240 + 240 * sin(a);
     
        _root.MoveTo(x1, y1);
        _root.LineTo(x2, y2);
      end;
    end.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  2. #2
    Membre expert
    Salut

    Bravo , cela montre que l'on peut faire de jolies choses avec peu de moyens: notions mathématiques de base et programme finalement très simple.

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 8.x 64bit, Lazarus 1.8 (FPC 3.0), Python 3 -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Membre expert
    Encore moi...

    Je n'avais pas eu le temps de regarder la vidéo, c'est cool et ça donne des idées...

    Merci Paul pour le lien.

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 8.x 64bit, Lazarus 1.8 (FPC 3.0), Python 3 -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  4. #4
    Rédacteur/Modérateur

    Merci pour ce programme Paul !

  5. #5
    Rédacteur/Modérateur

    Dans la série "math en Flash", je vous propose une très simple animation sur le problème suivant : "Comment construire un carré deux fois plus grand qu'un carré donné ?"

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    program LeCarreDeuxFoisPlusGrand;
     
    uses
      Flash8, Colors;
     
    {$FRAME_WIDTH 400}
    {$FRAME_HEIGHT 400}
    {$BACKGROUND $2F4F4F} // DarkSlateGray
    {$FRAME_RATE 1}
     
    type
      TAnimation = class(MovieClip)
        procedure onEnterFrame; override;
      end;
     
    var
      gCount: integer;
     
    procedure TAnimation.onEnterFrame;
    begin
      case gCount of
        00: begin LineStyle(2, White); MoveTo(0, 0); LineTo(100, 0); end;
        01: LineTo(100, 100);
        02: LineTo(0, 100);
        03: LineTo(0, 0);
     
        04: begin LineStyle(2, Gray); MoveTo(100, 0); LineTo(200, 0); end;
        05: LineTo(200, 200);
        06: LineTo(0, 200);
        07: LineTo(0, 100);
     
        08: begin MoveTo(100, 100); LineTo(200, 100); end;
        09: begin MoveTo(100, 100); LineTo(100, 200); end;
     
        10: begin LineStyle(2, Orange); LineTo(0, 100); end;
        11: LineTo(100, 0);
        12: LineTo(200, 100);
        13: LineTo(100, 200);
      end;
     
      Inc(gCount);
    end;
     
    begin
      with TAnimation.Create(nil, 'TAnimation', 0) do
      begin
        _x := 100;
        _y := 100;
     
        LineTo(200, 200);
      end;
     
      gCount := 0;
    end.