【问题标题】:How to check if a float value is increasing or decreasing如何检查浮点值是增加还是减少
【发布时间】:2015-02-15 19:45:55
【问题描述】:

我以浮点值计算了用户左右手之间的距离。 如果手靠近 => 距离大约为 0.00xxxx 如果双手分开 => 距离变大约 2.0000

由于这些值是浮动的,并且它们不断变化,因此 IF 条件是不充分的。

我如何以编程方式检查一个值是否可以说 x 是从 X=0.0 到 X=0.5 或从减少 x=0.5 到 x=0

所以如果它增加则执行动作 X,或者如果它减少则执行动作 Z。 .我已经使用以下逻辑进行了缩小但不是很流畅。

  if (distance < 1 && distance > 0.65 && leftHandFront && rightHandFront)

                        {
                                mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -120, 0);

                            }

【问题讨论】:

  • 你的问题不是很清楚。 if 适用于浮点数,只要您测试大于或小于。
  • 我已经使用 IF 进行了测试,但是距离值在增加(手分开)和减少(手靠近)之间重叠。因此,放大效果很好,但与缩小手势同时效果不佳。
  • 我认为你需要记录之前的距离,并与当前的距离进行比较。
  • @Galik 您能否展示一个基于代码的示例,说明如何跟踪距离变量的先前值?我的意思是当前值在不断变化,如果用户在移动手时检查这些当前值,但之前的距离到底是什么意思?

标签: c# c++ windows floating-point integer


【解决方案1】:

您的问题不是很清楚,但这可能是您正在寻找的(它不是一个工作示例)。

float prev_distance = 0.0;

while(true) // keep looping
{
    float distance = calculate_distane(); // get distance

    if(distance < prev_distance)
    {
        // do X
    }
    else
    {
        // do Z
    }

    prev_distance = distance; // remember this dustance for next time
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 2021-10-24
    • 2018-07-09
    • 1970-01-01
    • 2015-08-09
    • 2021-08-25
    • 2019-09-03
    相关资源
    最近更新 更多