Bonjour,
Je tente actuellement de porter la fonction suivante - écrire en Java ou swift - à l'aide de C#, dans une bibliothèque Windows Phone :
Voici le code Java :
et le code swift
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public Matrix zoom(float scaleX, float scaleY, float x, float y) { final Matrix save = new Matrix(); save.set(anotherMatrix); save.postScale(scaleX, scaleY, x, y); return save; }
En C#, dans un univers Windows Phone, je possède bien les classes suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public func zoom(#scaleX: CGFloat, scaleY: CGFloat, x: CGFloat, y: CGFloat) -> CGAffineTransform { var matrix = CGAffineTransformTranslate(_touchMatrix, x, y); matrix = CGAffineTransformScale(matrix, scaleX, scaleY); matrix = CGAffineTransformTranslate(matrix, -x, -y); return matrix; }
- System.Windows.Media.Matrix
- System.Windows.Media.TranslateTransform
- System.Windows.Media.ScaleTransform
Mais... la méthode Transform des classes TranslateTransform et ScaleTransform fonctionne avec des objets Point et non Matrix.
Comment puis-je alors migrer le code et appliquer les transformations à ma matrice ?
A noter qu'une classe matrice existe aussi dans l'espace de nom XNA et cette classe présente bien des méthode CreateScale et CreateTranslation. Mais XNA n'est-il pas déprécié ? Quelle classe Matrix dois-je alors utiliser pour arriver à mes fins ?
Merci d'avance pour votre aide !
Partager