У меня есть точка в системе координат 320*240
, и я хочу преобразовать в другую систему координат, например, 1024*768
или 1920*1600
.C# Преобразование точки из одной координаты экрана в другую координаты экрана
Есть ли предопределенные классы .net
для этого?
Я пытаюсь решить, как это -
screenWidth = System.Windows.SystemParameters.PrimaryScreenWidth;
screenHeight = System.Windows.SystemParameters.PrimaryScreenHeight;
double newWidth = x/320 * screenWidth;
double newHeight = y/240 * screenHeight;
bola.SetValue(Canvas.LeftProperty, newWidth);
bola.SetValue(Canvas.TopProperty, newHeight);
Я получаю точку из 320*240
системы координат, и я пытаюсь перенести его в другую систему координат.
Есть ли лучший способ достичь этого?
Во-вторых, я продолжаю получать эти баллы, есть ли лучший способ сгладить это, как его очень нервное движение?
Благодаря
Если x и y являются целыми числами, x/320, а также y/240 являются целыми делениями, и поэтому результат может быть неправильным: например, для x = 300 у вас будет 0. Если это ваш случай, перепишите формулу: double newWidth = x/320.0 * screenWidth и double newHeight = y/240.0 * screenHeight –
все здесь в двух экземплярах. – sunder
Посмотрите Matrix.Transform: http://msdn.microsoft.ком/EN-US/библиотека/ms607598.aspx – svenv