J'ai une matrice resultante a partir d une combinaison de rotation et scale selon l axe x et l axe y . est ce que je peu extraire seulement le scale pour redimensinner seulemt l'image sans faire la rotation.
J'ai une matrice resultante a partir d une combinaison de rotation et scale selon l axe x et l axe y . est ce que je peu extraire seulement le scale pour redimensinner seulemt l'image sans faire la rotation.
est ce que ca depend de l ordre et le nombre de transformation :
* rotation , translation , rotation
* translation , rotation , translation
La matrice de transformation est la résultant de toutes les opérations que vous lui avez donné. Si vous voulez connaitre le facteur de zoom résultant que vous avez obtenu, je vous suggère de prendre trois points: A(0,0) B(100,0) C(0,100), vous les transformez tous les trois avec la matrice et mesurez la distance A-B et A-C résultante. vous comparez à la distance de départ et vous avez une idée votre facteur de zoom.
Le probleme s est que je ne peut pas connaitre les coordonne des point sur mon image car je connait seulement le conteneur graphics2D :
Je doit positionner cette image dans ce graphics2D que je lui applique une transformation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Graphics2D gimg = contentPage.createGraphics(wg,hg); AffineTransform transformer = new AffineTransform(a,b,c,d,0,0); gimg.transform(transformer); gimg.drawImage(img, x,y ,w,h, null);
Al aide de cette formule je peut trouver x' et y' mais il me manque l echelle:
x = x0 + (x' cos(φ) - y' sin(φ)) * échelle
y = y0 + (x' sin(φ) + y' cos(φ)) * échelle
j ai comprit que l echelle suivant x est scaleX , echelle suivant y est scaleY.
est ce que se calcul est faux , est ce que l echelle a une seule valeur (ca ne depend ni de x ni de y) , ou bien ca depent de la taille du Graphics2D ou de la taille de l image.
Merci de m eclairir .
Ce n'est pas du tout la formule qui est utilisée par affinetransform. LEs trasnformation affines sont expliquées ici:
http://en.wikipedia.org/wiki/Affine_transformation
Votre formule n'est qu'un cas particulier, hors, si j'ai bien suivi votre message, vous avez une transformations affine existante et cherchez son scale.
Partager