Informations sur: DECINGRA.BAS

Publié par SFLPMEA le 18/04/2006

Description

Source Qbasic : DECINGRA.BAS. Représentation Graphique d'une Fonction avec possibilités de toutes modifications (position des axes, échelles) avec un exemple de trigonométrie. Par SFLPMEA

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
58
59
60
61
62
63
64
65
'*******************************************
'* REPRESENTATION GRAPHIQUE d'une FONCTION *       DECINGRA.BAS
'*******************************************   
    SCREEN 12: WINDOW (1, 480)-(640, 1): CLS
    ON ERROR GOTO E99.ERREUR
    ' *** Coordonnées de l'angle supérieur gauche : X = 1 et Y = 480
    ' *** Coordonnées de l'angle inférieur droit  : X = 640 et Y = 1
    Dx% = 300 ' *** valeur de l'abscisse X de l'axe des ordonnées
              ' *** pour déplacer l'axe des ordonnées à gauche ou à droite
    Dy% = 240 ' *** valeur de l'ordonnée Y de l'axe des abscisses
              ' *** pour déplacer l'axe des abscisses + haut ou + bas
              ' *** Il est possible de positionner HORS de l'ECRAN !!!!!
    ' *** Nous pouvons tracer les axes de coordonnées
    LINE (1, Dy% - 1)-(640, Dy% + 1), 1, BF' *** Abscisses
    LINE (Dx% - 1, 1)-(Dx% + 1, 480), 1, BF' *** Ordonnées
    ' *** Echelles (Essaye de les modifier)
    Ech.X! = 1     ' *** échelle des abscisses (1 pixel = Ech.X! unit‚s)
    Ech.Y! = .015   ' *** échelle des ordonnées (1 pixel = Ech.Y! unit‚s)
    ' *** Petite graduation
    FOR X% = Dx% TO 640 + Dx% STEP 100 / Ech.X!
        LINE (X% - 1, Dy% - 10)-(X% + 1, Dy% + 10), 2, BF
    NEXT X%
    FOR X% = Dx% TO -(640 + Dx%) STEP -100 / Ech.X!
        LINE (X% - 1, Dy% - 10)-(X% + 1, Dy% + 10), 2, BF
    NEXT X%
 
    FOR Y% = Dy% TO 480 STEP 100 / Ech.Y!
        LINE (Dx% - 10, Y% - 1)-(Dx% + 10, Y% + 1), 2, BF
    NEXT Y%
    FOR Y% = Dy% TO -480 STEP -100 / Ech.Y!
        LINE (Dx% - 10, Y% - 1)-(Dx% + 10, Y% + 1), 2, BF
    NEXT Y%
   
    ' *** A MODIFIER SELON LE GRAPHIQUE A ETUDIER ET DESSINER
   
    ' *** Fonctions  SINUS, COSINUS et TANGENTE (Angle en grades) comme exemple
    FOR Couleur% = 1 TO 12
        FOR I% = -5000 TO 5000 ' *** Il est possible de sortir de l'écran !!!!
            Grade! = I%
            Radian! = Grade! * 3.141593 / 200
            Etape% = 1 ' *** pour que le ON ERROR détecte les divisions par 0 éventuelles
            Y! = SIN(Radian!): X.d! = Grade! / Ech.X! + Dx%
            Y.d! = Y! / Ech.Y! + Dy%
            PSET (X.d!, Y.d!), Couleur%      ' *** Trace un point
            CIRCLE (X.d!, Y.d!), 1, Couleur% ' *** Cercle pour + de visibilité
            Y! = COS(Radian!): Y.d! = Y! / Ech.Y! + Dy%
            PSET (X.d!, Y.d!), Couleur% + 1
            CIRCLE (X.d!, Y.d!), 1, Couleur% + 1
            Y! = TAN(Radian!): Y.d! = Y! / Ech.Y! + Dy%
            PSET (X.d!, Y.d!), Couleur% + 2
            CIRCLE (X.d!, Y.d!), 1, Couleur% + 2
            Etape% = 0
NAIXT: NEXT I%
    SLEEP 2 ' *** SANS le SLEEP, c'est trop rapide
    NEXT Couleur%
    COLOR 15: END
 
E99.ERREUR:
    IF Etape% = 1 THEN ' *** Erreur de calcul (comme une division par zéro)
        RESUME NAIXT
    ELSE               ' *** Autres erreurs éventuelles
        LOCATE 29, 5: COLOR 15: PRINT "ERREUR " + STR$(ERR)
        SLEEP: END
    END IF
 
v6 © Computaid SPRL 2005-2008 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,016 s - Crédits - Stats
1 connecté