Fenêtrages

dimanche 20 juillet 2025



en cours de rédaction


1 – La théorie

?

2 – Ce que ça donne en Python

?

LARGEUR = 1920
HAUTEUR = 1080


x_min = -2
x_max =  2
y_min = -2
y_max =  2


def PixelVersPoint(px, py) :
    x = x_min + px / (LARGEUR - 1) * (x_max - x_min)
    y = y_max - py / (HAUTEUR - 1) * (y_max - y_min)
    return (x, y)


def PointVersPixel(x, y) :
    px = int( (x - x_min) / (x_max - x_min) * (LARGEUR - 1) )
    py = int( (y_max - y) / (y_max - y_min) * (HAUTEUR - 1) )
    return (px, py)


def UnAutreCarré(Couleur, Couleur_du_fond) :
    I = CréerDessin(LARGEUR, HAUTEUR)
    for px in range(LARGEUR) :
        for py in range(HAUTEUR) :
            
            # On détermine les coordonnées géométriques...
            (x, y) = PixelVersPoint(px, py)
            
            # ...puis on décide de la couleur selon où l'on se trouve.
            if -1 <= x <= 1 and -1 <= y <= 1 :
                c = Couleur
            else :
                c = Couleur_du_fond
            I.putpixel( (px, py), c )
    
    Afficher(I)


>>> JAUNE_PÂLE = (245, 255, 210)
>>> GRIS_FONCÉ = (60, 60, 60)
>>> UnAutreCarré(GRIS_FONCÉ, JAUNE_PÂLE)
un carré qui n'est pas carré

# Fenêtrage orthonormé centré sur le point Ω
def Centrer(x_Ω, y_Ω, RayonHorizontal) :
    global x_min, x_max, y_min, y_max
    x_min = x_Ω - RayonHorizontal
    x_max = x_Ω + RayonHorizontal
    RayonVertical = RayonHorizontal * HAUTEUR / LARGEUR
    y_min = y_Ω - RayonVertical
    y_max = y_Ω + RayonVertical


>>> Centrer(0.0, 0.0, 4.0)
>>> UnAutreCarré(GRIS_FONCÉ, JAUNE_PÂLE)
un carré qui est carré


3 – Ce que ça donne en C

?