2014-09-07 1 views
0

У меня есть позиция (x, y) точки внутри прямоугольника, который имеет ширину и высоту, как найти относительное положение (x1, y1) для той же точки на другом прямоугольнике имеют разный размер (height1, windth1), что такое математическая формула?Математическая формула для определения положения точки на разных окнах различается по размеру (ширина и высота)

ответ

0

Я использовал приближенную формулу математики следующим образом: предположить, что длина и ширина прямоугольника Н, W соответственно, и такая точка расположения (x, y). Другие размеры прямоугольника (высота и ширина) равны соответственно H1, W1, поэтому мы можем найти, что местоположение точки (x1, y1) => (x * H1/H, y * W1/W) с использованием (H : x, W: y) < => (H1: x1, W1: y1)

0
public Form1() 
    { 
     InitializeComponent(); 
     panel1 = new Panel(); 
     panel2 = new Panel(); 
     // panel1 
     panel1.BorderStyle = BorderStyle.FixedSingle; 
     panel1.Location = new Point(22, 29); 
     panel1.Name = "panel1"; 
     panel1.Size = new Size(159, 120); 
     panel1.TabIndex = 0; 
     panel1.Click += panel1_Click; 
     // panel2 
     panel2.BorderStyle = BorderStyle.FixedSingle; 
     panel2.Location = new Point(187, 29); 
     panel2.Name = "panel2"; 
     panel2.Size = new Size(273, 120); 
     panel2.TabIndex = 1; 
    } 

    private void panel1_Click(object sender, EventArgs e) 
    { 
     Point panel1Point = panel1.PointToClient(Cursor.Position); 
     PrintPoint(panel1Point); 
     Point panel1PointToScreen = panel1.PointToScreen(Cursor.Position); 
     Point point2Point = panel2.PointToClient(panel1PointToScreen); 
     PrintPoint(point2Point); 
    } 

    private void PrintPoint(Point point) 
    { 
     var msg = string.Format("X:{0}, Y:{1}", point.X, point.Y); 
     MessageBox.Show(msg); 
    } 

Дополнительная информация
getting mouse position of different control

Смежные вопросы