Bonjour à tous,
je cherche a implémenter la rotation de mon JSVGCanvas, de manière a ce que le coin supérieur gauche du canvas résultant soit toujours en 0,0.
Si j'ai bien compris comment marche la rotation, cela implique de faire une translation par la suite, j'applique celle-ci mais ca ne fonctionne pas, qui peut me dire ou je fais fausse route ?
J'utilise la meme tranformation pour une image au sein d'un Jpanel et ca fonctionne parfaitement, la le positionnement est faux, j'avoue que je ne comprends pas pourquoi ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public void setSVGAffineTransformation(){ double CT= zoomControl.getTableauZoomCombo()[zoomControl.getZoomComboBoxValue()]; AffineTransform tx = svgCanvas.getRenderingTransform(); tx.setToScale(CT,CT); if(zoomControl.getAngleRotation() != 0){ double sinA = Math.sin(zoomControl.getAngleRotation()); tx.rotate(zoomControl.getAngleRotation(), svgCanvas.getWidth()/2, svgCanvas.getHeight()/2); tx.translate(sinA * svgCanvas.getRenderRect().getX(), -sinA * svgCanvas.getRenderRect().getY()); } svgCanvas.setRenderingTransform(tx); }
Partager