Я сейчас пытаюсь порта следующие Java или Swift код в C# (в библиотеке Windows Phone):Масштаб и перевести преобразования на матрицу
Здесь Java код:
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;
}
И здесь Свифт код:
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;
}
в основном, в C# для Windows Phone у меня есть следующие классы:
System.Windows.Media.Matrix
System.Windows.Media.TranslateTransform
System.Windows.Media.ScaleTransform
Но ... Transform
метод из TranslateTransform
и ScaleTransform
классов работают с Point
и не с Matrix
.
Как применить масштаб и преобразовать преобразование в матрицу в C#?
Возможный дубликат [http://stackoverflow.com/questions/636081/how-to-rotate-scale-and-translate-a-matrix-all-at- один раз в C#] (http://stackoverflow.com/questions/636081/how-to-rotate-scale-and-translate-a-matrix-all-at-once-in-c). –
@JohnOdom: Thx за вашу помощь. Это не дубликат. На самом деле класс 'System.Windows.Media.Matrix' не предоставляет метод« Масштабирование »или« Перевод ». Но «Матрица» из пространства имен XNA, похоже, имеет эти методы. Должен ли я использовать этот класс? Xna устарела, не так ли? – rolandl