我需要计算鼠标在屏幕上点击的两个地点之间的距离。
在鼠标移动事件(e.X和e.Y)中填充了目标(x和y)和源(X和Y)。
我使用 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;
}