Remise à l'échelle d'un intervalle
Bonjour j'ai un problème, je veux afficher un zoom une image : en gros pour afficher mon image,
- j'affiche seulement des points générés compris entre l'intervalle [-2,2] * [-1.25,1,25], donc pour afficher plus gros je dois réduire l'écart par exemple :
[-1.75,1.75]*[-1,1]. Et la de cette manière ce sera zoomé par rapport au centre de l'image par rapport au point (longueurfenetre/2,hauteurfenetre/2).
- Moi je veux zoomé par rapport à un autre point (abs,ord), il faut que je transvecte mes intervalles, mais vu que ce sont des intervalles j'ai du mal à remettre à l'échelle.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
/**
* \brief Exposition du zoom
* \details Enregistre une nouvelle mise à l'échelle.
*
* INPUT: ordonnée et abscisse du centre de la zone à changer d'échelle
* OUTPUT: --
*
*
*
*/
void win1_on_expose_zoom_mandelbrot(int abs, int ord,Ez_event *ev)
{
double h = 0.1;
t_App_data *app = ez_get_data(ev->win);
app->xmin = app->xmin+h;/** mise à l'échelle xmin */
app->xmax = app->xmax-h;/** mise à l'échelle xmax */
app->ymin = app->ymin+h;/** mise à l'échelle ymin */
app->ymax = app->ymax-h;/** mise à l'échelle ymax */
} |
Je vous mets le code que j'ai fait pour l'instant je n'arrive que à zoomer autour du centre. Et il y a quelques spécificités par rapport à l'outil graphique que j'utilise.
Je vous remercie