TD No 2
from http://vernier.frederic.free.fr/Teaching/IntroGraphic

Règle de Trois et complémentaire

  1. Un pixel passe du noir (0) au gris foncé (64) en 100ms. Quand atteint-il le blanc (255) ?
    réponse: 100/64*255
  2. Ce code qui dessine des rectangles de plus en plus "haut"
    L'auteur de ce code a du diviser i par 7 pour que la hauteur des rectangles ne sorte pas de l'écran
    Modifiez ce code pour qu'à droite les rectangles soient exactement aussi hauts que la fenêtre (comme dans la 2ième image ci-dessous)
  3. for (int i=0; i<width; i+=5) {
      rect(i, 0, 5, i/7);
    }

    for (int i=0; i<width; i+=5) {
      rect(i, 0, 5, i*height/width);
    }
  4. Modifiez encore ce code pour que les rectangles partent du bas et montent comme dans un histogramme
  5. for (int i=0; i<width; i+=5) {
      rect(i, height-(i*height/width), 5, i*height/width);
    }

Coordonnées

Soit les coordonnées Ecran et Math de la Figure 1 dans un espace de 640 pixels de large et 480 pixels de haut (width x height).

  1. Quelles sont les coordonnées du point (100, 50) du repère de Math centré à l'écran lorsqu'on passe au repère d'informatique ?
  2. width/2+100, height/2-50
  3. Dans la mémoire linéaire de l'ordinateur, quelle est la position de ce pixel ?
  4. 100+50*width
  5. Donnez la formule pour un point quelconque px, py
  6. px+py*width
  7. Donnez l'algorithme qui calcule l'adresse d'un point px, py si la mémoire ne commence pas en 0 mais en memoireDebut, valeur donnée en entrée du programme.
  8. memoireDebut + px+py*width
  9. Modifier votre programme pour tester que le point donné en entrée ne sorte pas de l'écran soit en testant px, py, soit en testant la valeur de sortie juste à la fin
  10. if (px>=0 && px<width && py>=0 && py<height)
    memoire[memoireDebut + px+py*width] = ...
    if (memoireDebut + px+y*width>=0 && memoireDebut + px+y*width<width*height)
    memoire[memoireDebut + px+py*width] = ...
  11. Y a t-il une différence entre les 2 ?
  12. la premiere methode est plus couteuse mais evite que les graphismes qui sortent a droite apparaisse a gauche de l'ecran
figure figure
Figure 1: Coordonnées Ecran (à Gauche) et Math (à Droite)