我在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。COM/EN-US /庫/ ms607598.aspx – svenv