Informations sur: ROTATIO2.BAS

Publié par AngeNoir le 10/12/2006

Description

ROTATIO2.BAS est la suite de ROTATION.BAS source QuickBasic 4.5 Description: Rotation d'un groupe d'octogone. Celui-ci créé par Ange.°.Noir

Code source (langage qbasic)

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
 
    ' - - - > ROTATIO2.BAS
    SCREEN 12: WINDOW SCREEN (640, 480)-(1, 1): CLS
    ' ***** Rotation de l'octogone+mini-octogone (SFLPMEA) avec DRAW
    Eto = 23: Eto1 = 203: Vit = 1: Vite = 4
    Xc% = 320     ' ***** Abscisse de l'ordonn‚e du centre (Modifiable)
    Yc% = 240     ' ***** Ordonn‚e (Modifiable)
    Rayon% = 200  ' ***** (Modifiable)
    Nb.S% = 8     ' ***** Nombre de sommets (Modifiable, minimum de 3)
                  ' ***** Maximum 200 ou plus … essayer, mais scintillement...
    DIM Angle!(Nb.S%) ' ***** Angle 'trigo' des sommets
    FOR I% = 1 TO Nb.S%: Angle!(I%) = 400 / Nb.S% * (I% - 1) - 1: NEXT I%
    DIM Xs%(Nb.S%)    ' ***** Abscisse de chaque sommet
    DIM Ys%(Nb.S%)    ' ***** Ordonn‚e de chaque sommet
    Un.Grade! = 3.14159 / 200 ' ***** Valeur de un grade en radians
    FOR Nb.Tour% = 1 TO 2     ' ***** nombre de tours modifiable
        FOR Angle! = 1 TO 400
            CLS
  
            Eto = Eto + Vit
            IF Eto > 360 THEN Eto = 1
            Eto9 = Eto9 - Vite
            IF Eto9 < 0 THEN Eto9 = 359
            DRAW "bm320,239;TA=" + VARPTR$(Eto)
            DRAW "C9;R185;TA=" + VARPTR$(Eto9)
            DRAW "C14;U60NL25NR25D60;D60NL25NR25U60;L60NU25ND25R60;R60NU25ND25L60"
            DRAW "E43NF17NH17G43;F43NE17NG17H43;G43NF17NH17E43;H43NE17NG17F43"
  
            Eto1 = Eto1 + Vit
            IF Eto1 > 360 THEN Eto1 = 1
            DRAW "bm320,239;TA=" + VARPTR$(Eto1)
            DRAW "C14;R185;TA=" + VARPTR$(Eto9)
            DRAW "C9;U60NL25NR25D60;D60NL25NR25U60;L60NU25ND25R60;R60NU25ND25L60"
            DRAW "E43NF17NH17G43;F43NE17NG17H43;G43NF17NH17E43;H43NE17NG17F43"
 
            FOR S% = 1 TO Nb.S%
                Angle!(S%) = Angle!(S%) - 1.11' ***** avec + 1, Rotation Inverse
                Sinus! = SIN(Un.Grade! * Angle!(S%))
                Cosinus! = COS(Un.Grade! * Angle!(S%))
                Xs%(S%) = Xc% + Rayon% * Cosinus!
                Ys%(S%) = Yc% + Rayon% * Sinus!
                IF S% > 1 THEN
                    LINE (Xs%(S%), Ys%(S%))-(Xs%(S% - 1), Ys%(S% - 1)), 15
                ELSE
                    LINE (Xs%(1), Ys%(1))-(Xs%(Nb.S%), Ys%(Nb.S%)), 15
                END IF
                LINE (Xs%(S%), Ys%(S%))-(Xc%, Yc%), 10
            NEXT S%
                T! = TIMER
                DO
                   A$ = INKEY$
                   IF A$ = CHR$(27) THEN END
                LOOP UNTIL TIMER >= T! + .01     ' ***** Vitesse modifiable
        NEXT Angle!
    NEXT Nb.Tour%
    END
 
v6 © Computaid SPRL 2005-2009 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,010 s - Crédits - Stats
1 connecté