Dessin en perspective/Perspective curviligne
Introduction
[modifier | modifier le wikicode]Le mécanisme de la vision relève de deux éléments qui coopèrent à notre insu :
- un aspect géométrique : l'image formée sur la paroi sphérique de la rétine de notre œil ;
- un aspect psychologique : l'interprétation par le cerveau de l'image transmise par la rétine.
On perçoit comme parallèles deux rails de train, alors qu'on constate bien sur une photographie que leurs lignes se rejoignent à l'horizon, et qu’elles sont toujours incurvées vers l'intérieur (même si cette courbure est souvent peu perceptible).
Tout le problème du dessinateur ou du peintre est de représenter ce qu’il voit et non ce qu’il sait, en tenant compte de cette règle immuable : plus un objet est éloigné, plus il apparait petit, ceci quelle que soit la direction de l'éloignement : vers la droite, ou la gauche, ou en haut, ou en bas, ou en profondeur.
La perspective est une application qui fait correspondre à des mesures métriques dans l'espace des mesures angulaires sur une surface. Une surface carrée, perpendiculaire à l'axe du regard dans le monde réel, apparaît en perspective comme un « quadrilatère curviligne » dont aucun des angles n'est droit, et dont les côtés sont incurvés vers l'intérieur.
Voici comment la rétine de notre œil perçoit plusieurs carrés identiques juxtaposés :
Contrairement à la perspective classique dont l'angle de vision est limité a 30 degrés (-15° à +15°), la perspective curviligne permet d'agrandir le champ de vision jusqu'à 180 degrés (-90° à +90°) aussi bien dans le sens horizontal que dans le sens vertical (et même pour toute direction oblique) : chaque point de l'espace réel est représenté par son image sur une demi-sphère dont le centre est l'œil de l'observateur.
Difficulté
[modifier | modifier le wikicode]Comment le dessin fait sur la sphère peut-il être « projeté » sur un plan (feuille à dessin, tableau du peintre, mur, etc.) ?
La première tentative répertoriée de représentation en perspective curviligne est le tableau de Jean Fouquet : « Entrée de l'empereur Charles IV à Saint-Denis » au 15e siècle : cette représentation est purement empirique, mais dénote néanmoins chez cet artiste un sens profond de l'observation :
Léonard de Vinci notait que « la perspective curviligne, qui rend compte des distorsions en largeur et en hauteur, correspond davantage aux effets de la vision ».
M. C. Escher s'est également inspiré de ces distorsions afin de créer des dessins qui ont dérouté les spectateurs de son époque.
Pourtant il a fallu attendre la fin du 20e siècle pour qu'un formalisme rigoureux soit établi par André Barre et Albert Flocon dans leur publication : La perspective curviligne (1968 - Édition Flammarion) : les auteurs démontrent qu'aucune forme régulière, mis à part le cercle, peut réellement être vue telle quelle et que l'éducation et l'habitude amènent le cerveau à rectifier les distorsions de la perception.
Hélas, peu d'artistes utilisent le principe de la perspective curviligne qui permet pourtant de régler le problème oublié dans la perspective conique classique : la diminution latérale ET la diminution verticale de la taille des objets (et non seulement la diminution de leur taille en profondeur).
Voici comment apparaissent, en perspective sphérique (donc également sur la rétine de notre œil), des lignes verticales de grande hauteur et des lignes horizontales de grande largeur (ne pas oublier que plus les intervalles sont éloignés de l'œil, plus ils apparaissent petits, d'où la courbure des lignes) :
Il faut bien comprendre que la perspective curviligne n'entre pas en opposition avec la perspective linéaire conique classique. En effet, si on ne regarde que le centre de la perspective curviligne (les 4 carrés situés au centre de la figure ci-dessus), on retrouve la même image qu'en perspective classique (ce qui est logique puisqu'on limite notre angle de vue a environ 30 degrés horizontalement et verticalement) : la perspective curviligne peut donc être considérée comme une extension de la perspective classique.
La perspective sphérique et les nouvelles technologies
[modifier | modifier le wikicode]Au siècle précédent existaient déjà les objectifs photographiques très_grand_angle (par exemple les fish-eyes) dont le rendu se rapproche de la perspective sphérique curviligne (image de gauche) :
Le développement des techniques numériques (photos, vidéos, infographie, images de synthèse, etc.) permet au 21e siècle de faciliter la création d'œuvres utilisant la perspective curviligne ; exemple non exclusif : avec votre souris naviguez en 360 degrés dans le palais abbatial de Senones.
Point de vue mathématique
[modifier | modifier le wikicode]Pour les images de synthèse, on utilise une transformation mathématique très simple permettant de calculer les coordonnées (X,Y) du point-image sur l'écran en fonction des coordonnées (x,y,z) du point réel ; en posant et R = rayon de la sphère, nous obtenons les formules approximatives :
Ces formules semblent incorrectes : en effet pour x = 0 et y et z ≠ 0, X = R au lieu de X = 0 idem pour Y quand y = 0 et x et z ≠ 0.
Formules mathématiques exactes : " pas si compliquées que cela ".
Avec ces formules, l'image d'un quadrillage carré donne ceci :
Sur cette image toutes les courbes sont des ellipses : En effet, tout plan passant par le centre Oe de la sphère de rayon R et contenant une droite du quadrillage coupe celle-ci suivant un cercle qui se projette comme une ellipse. Le cercle limite (le cadre) est obtenu pour z = R .
Remarque : Le repère 3D orthonormé direct Oxyz a pour axes Oz portant Oe, orienté positivement de O vers Oe avec OOe = R. Les axes Ox et Oy perpendiculaires entre eux et à Oz définissent le plan tangent en O à la sphère, c’est le plan du tableau (ou l'écran). Tout point M(x,y,z) de l’objet est d’abord projeté depuis Oe sur la sphère puis orthogonalement sur le plan du tableau. On obtient ainsi l'image M' de M qui a pour coordonnées X et Y (formules exactes) dans le repère Oxy du tableau.
Autre remarque : Étant entendu que l’on doit d’abord projeter M(x,y,z) en M1 depuis Oe sur la sphère, cette projection orthogonale de M1 en M' sur le tableau s’appelle en cartographie, une projection orthographique.
Cas de la perspective cylindrique :
Cette fois la surface de projection n'est plus une sphère analogue à la rétine mais un cylindre qui dans le même repère que précédemment à pour rayon et pour axe une parallèle à Oy passant par Oe. Les formules permettant de passer d'un point M(x,y,z) de l’objet à son image en perspective dans le plan du tableau deviennent :
On remarquera l’absence du terme en dans le radicande de la racine carrée du dénominateur par rapport aux formules utilisées en sphérique.
Avec ces nouvelles formules, l'image d'un quadrillage carré donne :
Sur cette image certaines courbes sont des ellipses et d'autres des droites : En effet, tout plan passant par Oe et contenant une droite parallèle à Ox coupe le cylindre suivant une ellipse qui se projette comme une ellipse tandis que tout plan passant par Oe et contenant une droite parallèle à Oy coupe le cylindre suivant une génératrice rectiligne qui se projette comme une droite verticale.
Dans son livre " Histoires de peintures " Daniel Arasse cite Jean Fouquet en lui attribuant la paternité de la perspective dite tournante qui n'est autre qu'une approche de la perspective cylindrique. L'illustration proposée : "Heures d'Etienne chevalier, Charité de saint Martin" étant plus proche d'une perspective cylindrique que sphérique puisque les verticales semblent rester verticales. Enfin, peut-être, à l'époque on ne savait pas que le fond de l’œil est concave, par contre on utilisait des miroirs convexes antérieurs au miroir plan.
Vue panoramique
Si, au lieu de projeter orthogonalement sur le plan du tableau les points obtenus sur le cylindre, on déroule cette fois ce dernier sur le plan du tableau, on obtient une vue panoramique. Pour cela on applique simplement à X de la perspective cylindrique la relation permettant de passer de la demi-corde X au demi-arc qu'elle sous-tend, le Y de la perspective cylindrique restant inchangé :
Xp et Yp étant les coordonnées dans Oxy du point correspondant à M(x,y,z) de l’objet initial.
L'image du même quadrillage carré est alors, sur un tableau plus grand :
Remarque : Les arcs d'ellipses obtenus sur le cylindre deviennent dans le développement de celui-ci des arcs de sinusoïdes (courbes bleues).
Autre approche de la perspective sphérique
Le repère Oxyz est le même que précédemment, la surface de projection est à nouveau un hémisphère [S] de rayon R et de centre Oe sur l'axe Oz, M(x,y,z) est un point de l’objet à représenter. Là aussi on projette M sur [S] depuis Oe pour obtenir M1. Contrairement à ce qui précède on ne projette pas orthogonalement M1 sur le plan du tableau Oxy. Cette fois on considère le plan [P] passant par l'axe Oz et contenant M, [P] coupe [S] suivant un arc de grand cercle portant M1, [P] coupe aussi le plan du tableau Oxy suivant une droite (D). Dans le plan du tableau on reporte sur (D) depuis O La longueur de l'arc OM1 pour obtenir M' image de M.
Dans ces conditions en posant :
Les coordonnées de M' dans le repère Oxy deviennent :
Ainsi, l'image d'un quadrillage carré donne :
Remarque: Le cercle limite (le cadre) est un cercle de rayon , de diamètre soit un champ de 180° dans toutes les directions.
Autre remarque : Les courbes bleues et roses, images de droites respectivement parallèles à Ox et à Oy, ne sont pas exactement des arcs de cercle mais en sont assez proches pour y être pratiquement assimilées. La projection de Guillaume Postel (1580) décrite ici a été simplifiée par André Barre et Albert Flocon en 1968 qui ont remplacé les courbes transcendantes obtenues par des arcs de cercle.
Exemple avec cette approche :
Remarque : Sur cet exemple, l’objet est constitué de deux sphères de même centre O1 sur Oz. R étant le rayon de l'hémisphère de projection OO1 = R/2. La grande sphère (noire et bleue) a pour rayon R1 = R/2, Oe est sur son équateur et on en voit l'intérieur. La petite sphère (rouge) a pour rayon R2 = R1/3 = R/6, elle est vue de l'extérieur.
Exercices
[modifier | modifier le wikicode]1) Face à une rangée d'immeubles (avec crayon et papier) : dessiner en perspective sphérique ce que vous voyez avec un angle visuel horizontal de 180 degrés en respectant le fait que les immeubles et voitures très à gauche ou très à droite vous apparaissent plus petits que les immeubles et voitures proches en face de vous.
2) Face à une tour ou un bâtiment très haut (avec crayon et papier) : dessiner en perspective sphérique ce que vous voyez avec un angle visuel vertical de 180 degrés en respectant le fait que les parties très hautes vous apparaissent plus petites que les parties proches en face de vous (vous dessinerez aussi vos pieds et le ciel !).
3) (Pour ceux qui ont suivis un cours de langage de programmation) En utilisant les formules (voir plus haut, en prenant R = 1 m), créer un logiciel qui calcule les coordonnées (X,Y), sur l'écran, des images de plusieurs points et de figures simples (droites, ellipses, triangles, quadrilatères, cubes, tétraèdres, etc.) situés dans l'espace tri-dimensionnel (x,y,z) : selon votre niveau, vous pouvez :
- utiliser les résultats numériques de votre logiciel pour tracer ces images sur une feuille de papier, ou mieux :
- compléter votre logiciel par des fonctions graphiques qui affichent automatiquement ces images sur l'écran.
Voici le fichier source au format texte :
char* titreFichier = " \n\
================================== \n\
FICHIER : perspectiveSpherique.cpp \n\
AUTEUR : rolrol \n\
DATE : Mars 1998 \n\
VERSION : 1.0 \n\
================================== \n\
\n"; // Fin du titre qui sera affiché à l'exécution
/*
OBJECTIF : Perspective Sphérique avec un angle de vision de 180 degrés
dans toutes les directions :
Calcul des coordonnées écran (X,Y) de l'image en fonction des
coordonnées (x,y,z) de l’objet réel
REMARQUE : C'est un exemple de logiciel court et très simple : niveau débutant.
Ce logiciel écrit en langage C/C++ peut aisément se traduire dans
le langage de votre choix ( Qui a dit : "en assembleur" ?),
aussi bien sous Linux ou Windows ou Mac_OS_X ou autre...
TESTS : C'est avec succès (eh oui !) que cette version du logiciel a été :
- compilée avec GNU GCC Compiler sous l'environnement CodeBlocks
- exécutée sous Windows Versions : NT XP Vista Seven
EXERCICE : Améliorer ce logiciel afin qu’il dessine sur l'écran les vues
en Perspective Sphérique d'objets simples (droites, triangles,
tétraèdres, cubes), et ensuite d'objets habituels (bâtiments,
meubles, véhicules, etc.)
*/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
int main (void);
void spherique (double, double, double, double*, double*);
//========================================================================
int main (void)
//========================================================================
{
double x,y,z,d,X,Y,R = 100.0;// On peut modifier la valeur du rayon R
printf("%s",titreFichier);
printf("\n Indiquer les coordonn\202es du point r\202el : \n");
printf("\n\tx = "); scanf("%lg",&x);
printf("\n\ty = "); scanf("%lg",&y);
printf("\n\tz = "); scanf("%lg",&z);
spherique(x,y,z,&X,&Y);
X *= R; Y *= R;
printf("\n\n Les coordonn\202es de l'image sont : \n\n\tX = %lg\t\tY = %lg",X,Y);
printf("\n\n Pour terminer : appuyer sur une touche ...\n\n");
getch ();
return EXIT_SUCCESS;
}
//========================================================================
void spherique (double x, double y, double z, double* pX, double* pY)
//========================================================================
{
// Les formules (trop) simples ci-dessous peuvent
// être remplacées par des formules plus exactes :
double d = sqrt(x*x + y*y + z*z);
*pX = 1 + x/d;
*pY = 1 + y/d;
}
// --------------
// FIN du FICHIER
// --------------
4) Concours (ou le seul gain est l'immense satisfaction d’offrir aux wikinautes une esthétique contribution) :
Concours du "plus beau logiciel" qui affiche des perspectives sphériques : fournir dans l'onglet discussion (situé en haut de cette page) :
- un lien-internet vers le fichier-source de votre logiciel,
ET
- un lien-internet vers le fichier-exécutable de votre logiciel en précisant s'il s'agit d'une version Windows ou Linux ou Mac_OS_X,
ET
- des copies d'écran graphique de quelques résultats d'exécutions de votre logiciel.
Liens externes
[modifier | modifier le wikicode]- Juste pour les images (même si vous ne comprenez pas le grec) consultez : National Technical University of Athens