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 :

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;
    }
et le code swift

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;
    }
En C#, dans un univers Windows Phone, je possède bien les classes suivantes :

  • 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 !