Ceci clôt en ce qui me concerne les fils [cherche fonction], [Pente
d'une bissectrice] et [Tangente à un cercle passant par un point
extérieur au cercle], en récapitulant pourquoi je les ai ouvert et
pourquoi ils auront été utiles.
Tout cela avait pour but de faire une conversion d'index x vers y, où x
pointe un bloc de données, et y pointe les colonnes pixels d'un
graphique où les représenter. En pratique ces valeurs sont discrètes,
mais pour la conversion x -> y il est plus facile d'utiliser des
valeurs réelles, normalisées entre 0 et 1.
Normalement y=x.
Pour faire une "loupe" permettant de zoomer une section, on a besoin
d'une conversion y=p0*x où p0>1 (on représente une largeur Δx par une
plus grande largeur Δy).
Et comme on veut maintenir dans le graphe l'affichage de toutes les
données, il faut "tasser les x" restants dans une zone y plus petite.
Donc avant et après la loupe, il nous faudra une équation y=p*x où p<1.
En général p sera différent avant et après la loupe.
Enfin, pour améliorer l'effet visuel en ne passant pas brutalement
d'une section à l'autre de "grossissement" différent, on utilise une
courbe qui modifie progressivement la pente dy/dx en garantissant sa
continuité. Les polynômes ne se sont pas avérés l'idéal, j'ai choisi
des arcs de cercle :
http://exvacuo.free.fr/temp/arccercle.jpg
Ceci revient à faire une zone progressive de loupe de chaque côté de sa
section linéaire x1-x2.
Le centre du premier cercle est l'intersection de la bissectrice de la
droite de départ D1 et celle la loupe D0, avec la perpendiculaire à D0
passant par (x1,y1) qui est le début de la loupe linéaire. On a aussi
ainsi le rayon du cercle.
Le second cercle aurait pu être calculé de la même façon, mais alors il
aurait été de taille différente. J'ai préféré garder un cercle
identique afin d'élargir la symétrie de la loupe autour de son centre.
Est-ce que cela a simplifié le problème ? Non ! Même si on a facilement
le centre du second cercle, qui est le symétrique de l'autre par
rapport au centre de la loupe, ça l'a compliqué, parce qu'alors la
pente finale p2 en dépend. Il faut la calculer en cherchant la tangente
qui passe par le point (1,1) final.
Et voilà un exemple du résultat, l'affichage du spectre
électromagnétique de la bande de radiodiffusion des 11 MHz :
http://exvacuo.free.fr/temp/zoomSpectre.jpg
Les 3 images sont prises à des moments un peu différents, donc ce n'est
pas exactement le même cliché, mais on retrouve bien toutes les
stations radio. Avec le zoom x8, on voit les 2 bandes latérales de
modulation AM autour de la porteuse de la station au centre de la
loupe. Les barres verticales sont mises là temporairement pour une
meilleure idée de l'affet.
Merci à tous les participants pour l'aide sinon j'y serais encore ! (ça
a payé, c'est l'essentiel, mais j'ai quand même souffert :-) ).