我需要计算鼠标在屏幕上单击的两个位置之间的距离。
target(x & Y) & source(X & Y) 在鼠标移动事件 (eX & eY) 上填充
我有distance = Math.Sqrt(Math.Pow(targetX - sourceX, 2) + Math.Pow(targetY - sourceY, 2));
这给了我一个结果,但老实说,我不确定测量的单位是什么或如何转换它。如何将该结果转换为有意义的结果,例如厘米或英寸?我猜我需要考虑屏幕分辨率?
更新 我真的只是在消磨时间。不是在寻找一个很好的解决方案,只是在寻找有效的解决方案。它只会持续一两天。
这是MoveMove
事件和呼叫。应该在之前发布所有内容以便更清楚。
private void HookManager_MouseMove(object sender, MouseEventArgs e)
{
labelMousePosition.Text = string.Format("x={0:0000}; y={1:0000}", e.X, e.Y);
AddDistance(Convert.ToDouble(e.X), Convert.ToDouble(e.Y));
}
private void AddDistance(double targetX, double targetY)
{
if (sourceX != 0 && sourceY != 0)
{
double distance = Convert.ToDouble(lblDistanceTravelled.Text);
distance =+ Math.Sqrt(Math.Pow(targetX - sourceX, 2) + Math.Pow(targetY - sourceY, 2));
lblDistanceTravelled.Text = distance.ToString();
}
sourceX = targetX;
sourceY = targetY;
}