J-0
00m
00j
00h
00min
00s

Version interactive avec LaTeX compilé

X ENS Informatique Commune PSI PT 2008

Notez ce sujet en cliquant sur l'étoile
0.0(0 votes)
Logo x-ens
2025_08_29_199797a11af1c50da18bg

ÉCOLE POLYTECHNIQUE

ÉPREUVE D'INFORMATIQUE

(Durée : 2 heures)
L'utilisation des calculatrices n'est pas autorisée pour cette épreuve.
Le langage de programmation choisi par le candidat doit être spécifié en tête de la copie et on supposera que ce langage contient une fonction partieEntiere( ) qui calcule la partie entière du réel .
On attachera une grande importance à la concision, à la clarté, et à la précision de la rédaction.

Lissage de vecteurs obliques

Un écran numérique est une matrice de pixels (picture elements en anglais), petits carrés dont chacun s'affiche dans une couleur uniforme. Cette grille de pixels est mal adaptée aux tracés de vecteurs obliques pour lesquels un effet de crénelage peut se produire. Pour l'éliminer, on lisse ces tracés en peignant en gris certains pixels se trouvant aux bords de ces tracés.
Nous explorons une version simple du lissage (anti-aliasing en anglais) dans le cas du remplissage de demi-plans.
Fig. 1: Effet de crénelage
Fig. 3: Effet de crénelage (zoom)
Fig. 2: Tracé avec lissage
Fig. 4: Tracé avec lissage (zoom)
L'écran de largeur et hauteur sera considéré de deux manières. D'une part, l'écran idéal, continu, est la surface définie par le produit cartésien , incluse dans , où tous les tracés sont possibles. D'autre part, l'écran réel est composé de pixels en largeur, et pixels en hauteur. Un pixel est référencé par les coordonnées de son coin inférieur gauche. Ainsi l'écran idéal est constitué des pixels de coordonnées ( ) où et sont des entiers satisfaisant et . Comme indiqué sur la figure 5 , le pixel ( ) représente la surface . On suppose disposer d'une fonction peindrePixel( ) qui affiche le pixel de coordonnées ( ) avec l'intensité de gris (où et , le blanc correspondant au 0 et le noir au 1 ).
Fig. 5: Le pixel ( ) représente la surface [ [
L'écran est initialement blanc. La région à peindre est définie par les trois inégalités :
On suppose et . Cette région est donc la partie de l'écran contenue dans le demi-plan situé au dessus de la droite d'équation .

Partie I. Remplissage simple

Dans cette partie, les pixels totalement contenus dans sont peints en noir, ainsi que les pixels à cheval sur la droite .
Question 1 Écrire la procédure peindreRegion qui peint la région en examinant tous les pixels de l'écran.
La procédure peindreRegion examine pixels. C'est inutile puisqu'initialement l'écran est blanc. Il suffit de n'explorer que les pixels dont l'ordonnée est minorée par où yMin est défini par :
è
Question 2 Écrire la procédure peindreRegionBis qui peint la région en n'examinant que les pixels de à noircir.

Partie II. Suréchantillonnage

Une technique simple de lissage est le suréchantillonnage. Elle est illustrée par la figure 6. Avant de noircir ou non le pixel ( ), on découpe la zone qu'il couvre en quatre carrés de côté . Pour chaque paire d'indices ( ) vérifiant , on note appartient à , et sinon. L'intensité de gris utilisée pour afficher le pixel ( ) est alors
Fig. 6: Calcul d'intensité par suréchantillonnage
Question 3 Écrire la procédure peindreRegionAA qui peint la région en appliquant le procédé de suréchantillonnage à tous les pixels de l'écran.
Comme à la question I.1, la question II. 3 examine un trop grand nombre de pixels. On remarque que dans les cas où ou bien , l'intensité calculée est soit 0 , soit 1 .
Question 4 Écrire la procédure peindreRegionAABis qui peint la région en n'examinant que les pixels de à noircir ou à griser.

Partie III. Calcul d'intensité par surface

Le lissage devient beaucoup plus précis en utilisant toute la gamme des niveaux de gris. Tout pixel ( ) est peint avec un niveau de gris égal à la surface occupée par à l'intérieur de la zone .
Comme la pente de la droite est comprise entre 0 et 1 , on remarque que, pour fixé, tous les pixels sont blancs ou noirs sauf les deux pixels ( ) et ( ) potentiellement à cheval sur qui peuvent être peints en gris, cf. figure 7.
On note et les surfaces des intersections de ces deux pixels avec le demi-plan , et on pose .
Question 5 Montrer que l'on a :
Fig. 7: Calculs de surfaces quand
On en déduit les inégalités :
et les deux cas de la figure 7 correspondant aux inégalités et égalités suivantes :
.
Question 6 Écrire la procédure peindreRegionAAA qui peint la région avec le calcul d'intensité par surface donné par les tables ci-dessus pour suivre la valeur de et de au cours de la variation de l'abcisse .
La procédure précédente recalcule trop fréquemment. Comme est un polynôme de degré 2 , et que évolue de manière assez simple, on peut suivre la valeur de de proche en proche grâce au calcul de sa dérivée . Posons , , .
Question 7 Donner deux suites de quatre additions/soustractions pour obtenir les triplets : et à partir de .
Question 8 Écrire une procédure peindreRegionAAAbis qui peint la région avec le calcul d'intensité par surface qui n'utilise que des comparaisons et des additions au cours de la variation de l'abcisse .
X ENS Informatique Commune PSI PT 2008 - Version Web LaTeX | WikiPrépa | WikiPrépa