Clipping de droite par un rectangle

Comment déterminer l’intersection d’une demi-droite avec le périmètre d’un rectangle dans lequel l’origine de la demi-droite est situé, sans nécessairement que ce soit au centre de ce rectangle ?
figure0
Ce problème de découpage (ou « clipping ») est assez classique. Plus généralement, il se rencontre quand il s’agit de découper un polygone dès qu’il sort d’une surface de rendu, parce qu’il faut déterminer précisément les coordonnées des sommets résultant du découpage et/ou plus basiquement parce qu’il faut optimiser le rendu en le limitant à ce qui est visible.

Continuer la lecture de « Clipping de droite par un rectangle »

Clipping de droite par un rectangle

Enveloppe régulière d’un polygone quelconque

Comment calculer les coordonnées des points formant une enveloppe régulière d’un polygone quelconque, c’est-à-dire une version plus grande ou plus petite du polygone qui semble parfaitement s’emboîter avec ce dernier (enveloppe homothétique) ? :
Enveloppe homothétique d'un polygone
Le parfait emboîtage de l’enveloppe et du polygone tient au fait que la distance entre un sommet du polygone et le sommet correspondant de l’enveloppe est constante.
Calculer les coordonnées des sommets de l’enveloppe par simple application d’un facteur d’agrandissement aux coordonnées des sommest du polygone ne permet pas de parvenir au résultat souhaité. En effet, un tel facteur ne pourrait s’appliquer qu’autour d’un centre, c’est-à-dire un point qui devrait se trouver à égale distance de tous les sommets du polygone pour entraîner un éloignement ou un rapprochement de la distance attendue des sommets correspondants de l’enveloppe.
Or l’existence d’un ensemble de cercles de même rayon, centrés sur chacun des sommets du polygone, qui se recoupent en un unique point constituant ce centre, n’a rien de systématique. En fait, ce n’est le cas que pour des polygones très particuliers :
Possibilité d'enveloppe homothétique par agrandissement
Dans les autres cas, on constate en pratique qu’il est impossible de trouver ce jeu de cercles qui se recoupent en un même point. Ainsi, sur cet exemple, il serait impossible de positionner l’enveloppe résultant de la simple application d’un facteur d’agrandissement de sorte que les sommets de l’enveloppe se trouvent même à une distance constante des sommets du polygone auxquels ils correspondent :
Impossibilité d'enveloppe homothétique d'un polygone par agrandissement

Continuer la lecture de « Enveloppe régulière d’un polygone quelconque »

Enveloppe régulière d’un polygone quelconque

Atténuation selon la loi en carré inverse (1/R²)

Comment produire un effet de ralentissement du mouvement réaliste ? La solution qui vient spontanément à l’esprit n’est pas réaliste : elle consiste à faire décroître la vitesse du mouvement de manière linéaire. Dans la réalité, le ralentissement est très fort au début et très faible à sa fin, donnant l’impression d’un amortissement :
Atténuation en 1/R²

Continuer la lecture de « Atténuation selon la loi en carré inverse (1/R²) »

Atténuation selon la loi en carré inverse (1/R²)

Déformation de maillage par translation de points

Comment déformer un maillage en modifiant la distance des points à un centre comme s’ils étaient attirés ou repoussés par ce centre selon une force dont l’intensité dépend de la distance ? Le résultat attendu est par exemple le suivant :
Déformation d'un maillage par translation des points

Continuer la lecture de « Déformation de maillage par translation de points »

Déformation de maillage par translation de points