中断命令后循环中的多次命中

2024-03-22

我有一个奇怪的问题。我正在为应用程序创建一个 NUI,并将一些简单的手势绑定到左右箭头。问题是当我开始应用程序时。当我第一次做出手势时,我的应用程序连续点击两次。之后它就100%按照我的要求工作了。只有开始才是问题所在。

我将两个关节和时间戳添加到我的历史结构中,并将其放入 ArrayList

        this._history.Add(new HistoryItem()
            {
                timestamp = timestamp,
                activeHand = hand,
                controlJoint = controlJoint
            }
        );

然后在 foreach 循环中我比较数据

if (Math.Abs((hand.Position.X - item.controlJoint.Position.X)) < MainWindow.treshold && Math.Abs((hand.Position.Y - item.controlJoint.Position.Y)) < MainWindow.verticalTreshold)

如果它击中我立即打破循环

break;

之后我清除历史记录 ArrayList

this._history.Clear();

所以我不明白。为什么开始后就连续撞了两次?

// edit

历史ArrayList初始化

private List<HistoryItem> _history = new List<HistoryItem>(16);

in loop

foreach (HistoryItem item in this._history)
        {
         if ((hand.Position.X - item.controlJoint.Position.X) < MainWindow.treshold)
                            {
                                float tmp = (hand.Position.X - controlJoint.Position.X);
                                MainWindow.slideNumber++;
                                this._logger.Log("Next slide: " + MainWindow.slideNumber);
                                this._logger.Log(hand.Position.X + " - " + controlJoint.Position.X + " = " + tmp + " | " + MainWindow.treshold);
                                this.startTime = 0;
                                this.gestureStart = false;
                                answerFlag = true;
                                System.Windows.Forms.SendKeys.SendWait("{Right}");
                                break;
                            }
                }

现在。正如你所看到的,我在这里打破了。所以这段代码不应该被连续第二次调用

这如何清除一些东西

// 编辑2

我还将添加,要进入这部分代码,需要将gestureStart 标志设置为true。正如您在进入“if”部分后所看到的,我将其设置为 false。所以代码不可能立即到达这部分

// 编辑3解决方法

我已经创建了一种解决方法。我添加了时间控制。我正在比较调用代码的时间戳和上次手势识别的时间戳。如果它太快(我的意思是几毫秒,这是不可能的),我不允许击中箭头。我不确定这是否是一个完美的解决方案,但它是一个可行的解决方案


好吧,我的问题是代码。调试中无法追踪的小错误。我使用一个函数来分析帧的历史记录。

该方法有两种工作模式。我已经将其分离并创建了两种不同的方法,每种方法针对每个任务,现在效果很好

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

中断命令后循环中的多次命中 的相关文章

  • 从 Invoke 方法获取 RETURN

    我正在尝试从另一个线程上的列表框项目中读取值 我尝试创建一种新方法来运行调用命令 我可以设法将命令发送到列表框 例如通过调用方法添加 但我似乎无法得到响应 我似乎无法获取该项目的值 我尝试了几种方法 一旦我将它从空变为字符串 事情就开始变得
  • C# Outlook 从收件人获取 CompanyName 属性

    我目前正在使用 C 编写 Outlook 2010 AddIn 我想要的是从我从 AppointmentItem 中提取的 Recipient 对象中获取 CompanyName 属性 因此 有了 AppointmentItem 的收件人
  • 如何调整 Windows 窗体以适应任何屏幕分辨率?

    我知道这是重复的问题 但我检查了所有其他相关问题 他们的答案没有帮助 结果仍然与屏幕截图 2 中所示相同 我是 C Windows 窗体新手 如截图1所示 我有Form1有一些控件 每组控件都放在一个面板中 我在 PC1 中设计了应用程序
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • 以下 PLINQ 代码没有改进

    我没有看到使用以下代码的处理速度有任何改进 IEnumerable
  • 类中是否可以有虚拟类声明?

    我正在为个人项目中框架的各个组件设置一个接口 我突然想到了一些我认为可能对接口有用的东西 我的问题是这是否可能 class a public virtual class test 0 class b public a public clas
  • 从时间列表中查找最接近的时间

    所以 这是场景 我有一个带有创建时间的文件 我想从该文件的创建时间最接近或相等的时间列表中选择一个时间 完成此操作的最佳方法是什么 var closestTime listOfTimes OrderBy t gt Math Abs t fi
  • 提升mapped_file_source、对齐方式和页面大小

    我正在尝试在性能很重要的上下文中解析一些大小高达几百兆字节的文本文件 因此我使用 boostmapped file source 解析器期望源以空字节终止 因此我想检查文件大小是否是页面大小的精确倍数 如果是 则使用较慢的非内存映射方法 我
  • 检测 TextBox 中的 Tab 键按下

    I am trying to detect the Tab key press in a TextBox I know that the Tab key does not trigger the KeyDown KeyUp or the K
  • 无法获取本地或参数的值,因为它在此指令指针处不可用,可能是因为它已被优化掉

    Visual Studio 2010 会删除 没有其他词 不安全块中函数参数之一中的数据 什么可能导致此错误 调试器显示以下消息 Cannot obtain value of local or argument as it is not a
  • 如何设置消息队列的所有者?

    System Messaging MessageQueue 类不提供设置队列所有权的方法 如何以编程方式设置 MSMQ 消息队列的所有者 简短的答案是 p invoke 对 windows api 函数的调用MQSetQueueSecuri
  • 从点云检测平面集

    我有一组点云 我想测试3D房间中是否有角落 所以我想讨论一下我的方法 以及在速度方面是否有更好的方法 因为我想在手机上测试它 我将尝试使用霍夫变换来检测线 然后我将尝试查看是否有三条线相交 并且它们也形成了两个相交的平面 如果点云数据来自深
  • 如何使用 C# 查询远程 MS ACCESS .mdb 数据库

    我正在尝试使用 C 查询 mote MS ACCESS 数据库 mdb 文件 将文件复制到本地计算机时可以成功查询它 我只想远程放置文件 所以我的客户端程序不包含原始数据 static string m path http www xyz
  • WPF DataGrid - 在每行末尾添加按钮

    我想在数据网格的每一行的末尾添加一个按钮 我找到了以下 xaml 但它将按钮添加到开头 有人知道如何在所有数据绑定列之后添加它吗 这会将按钮添加到开头而不是末尾
  • 如何测试某些代码在 C++ 中无法编译? [复制]

    这个问题在这里已经有答案了 可能的重复 单元测试编译时错误 https stackoverflow com questions 605915 unit test compile time error 我想知道是否可以编写一种单元测试来验证给
  • 用数组或向量实现多维数组

    我想使用单个数组或向量实现多维数组 可以像通常的多维数组一样访问它 例如 a 1 2 3 我陷入困境的是如何实施 操作员 如果数组的维数为 1 则 a 1 应该返回位于索引 1 处的元素 但是如果维数大于一怎么办 对于嵌套向量 例如 3 维
  • 与 Entity Framework Core 2.0 的一对零关系

    我正在使用 C 和 NET Framework 4 7 将 Entity Framework 6 1 3 Code First 库迁移到 Entity Framework Core 我一直在用 Google 搜索 Entity Framew
  • 在二进制数据文件的标头中放入什么

    我有一个模拟 可以读取我们创建的大型二进制数据文件 10 到 100 GB 出于速度原因 我们使用二进制 这些文件依赖于系统 是从我们运行的每个系统上的文本文件转换而来的 所以我不关心可移植性 当前的文件是 POD 结构的许多实例 使用 f
  • Unity,c++ 本机插件字节数组不匹配

    在我的 C 本机插件中 我有一个调用 vector
  • IDisposable 的显式实现

    虽然有很多关于IDisposable在 SO 上找到 我还没有找到答案 我通常遵循这样的做法 当我的一个班级拥有一个IDisposable对象然后它也实现IDisposable并打电话Dispose在拥有的对象上 然而最近我遇到了一个类 它

随机推荐

  • Kinect 1.8 颜色帧和深度帧不协调

    我的程序存在深度和彩色图像之间协调不佳的问题 玩家面具与人物不在同一位置 见下图 void AllFreamReady object sender AllFramesReadyEventArgs e using ColorImageFram
  • 等待 5 秒再执行下一行

    下面这个函数并没有像我想要的那样工作 作为一个 JS 新手 我不明白为什么 我需要它等待 5 秒钟 然后再检查是否newState is 1 目前 它不会等待 而是立即检查 function stateChange newState set
  • 将 zip 文件导入为库 - Eclipse Java

    我在导入 google http 库时陷入困境 我在链接中做了一些研究 例如 Eclipse Java 如何导入 zip 格式的库 https stackoverflow com questions 14375810 eclipse jav
  • 将 Java 对象转换为 Java Map

    我在用org eclipse jetty util ajax JSON解析 JSON 文本 但是JSON parse 字符串 方法生成一个对象 我需要它作为映射 在内部 它正是所提到的类的对象 但是 如何在不构造新对象或收到未经检查的转换警
  • 如何配置 Webpack 开发服务器来为特定文件夹提供服务,同时通过不同的服务器运行站点的其余部分?

    一些简单的背景知识 我公司的站点运行 CMS 并由 CMS 处理所有路由 没有 html 文件 只有 razor 文件 cshtml 虽然我更愿意从头开始重做网站 但这不是一个选择 因此我尝试通过将 vue js 与 webpack 开发工
  • gcc *有时*以一种奇怪的方式解决重载歧义

    在回答之前 这不是一个关于如何让这段代码做我想做的事情的问题 我已经知道该怎么做 参见这个问题的结尾 这是一个关于理解编译器为什么要做它所做的事情的问题 请考虑以下 简化的 代码 include
  • Javascript:带有尾随字符的 parseInt()

    parseInt 7em 10 回报7在我测试过的所有浏览器中 但我可以依靠这个吗 我问的原因是 我想根据 em 执行一些计算 例如 elem1 style top uses em units elem2 style top parseIn
  • 什么是“准实施”?

    有时 在搜索会员的推荐信时 我会收到此弹出窗口 这通常需要很长时间 所以我倾向于取消 但我想知道 我错过了什么 什么是 准实施 根据resharper 支持的这个答案 https resharper support jetbrains co
  • 读取 RDS AWS 中的副本

    我是亚马逊 RDS 的新手 我已经在RDS中设置了一个数据库实例 我想尝试 RDS 只读副本功能 我有几个疑问 只读副本适合什么样的应用 只读副本将数据同步还是异步复制到其他只读副本 它是多可用区部署的替代品吗 与MYSQL中的主从或主主复
  • Javascript 中的 try-catch 语句可以捕获哪些类型的错误?

    如果我写 try null foobar catch e alert e 没有任何警报 但ReferenceError已登录到控制台 然而 try barfoo foobar catch e alert e 显示带有以下内容的警报Refer
  • 如何从Windows任务管理器检测程序java强制关闭?

    如果我问了这样一个菜鸟问题冒犯了某人 大家很抱歉 因为我看到有人因不恰当而 标记了 问题 这是我第一次在这里提问 所以如果有什么不合适的地方请原谅我 如果我的英语不是很好 请原谅 当我的程序通过任务管理器关闭时 我试图创建一个临时文件 但我
  • 将大型数据集加载到 R 中的最快方法和最快格式是什么[重复]

    这个问题在这里已经有答案了 我有一个很大的数据集 未压缩时大约 13GB 我需要重复加载它 第一次加载 并保存为不同的格式 可能非常慢 但此后的每次加载都应该尽可能快 加载数据集的最快方式和最快格式是什么 我怀疑最佳选择是这样的 saveR
  • Yang 的 XPath current()

    这是我的后续问题Yang 中的 Xpath current https stackoverflow com questions 55888566 xpath current in yang经过前面的讨论 我为 libxml2 实现了一个自定
  • 批处理、重复和洗牌对 TensorFlow 数据集有什么作用?

    我目前正在学习 TensorFlow 但我在下面的代码片段中遇到了困惑 dataset dataset shuffle buffer size 10 batch size dataset dataset repeat num epochs
  • 使用 ServiceRoute 时指定 WCF 绑定

    我目前正在使用以下代码注册 WCF 服务 var factory new DefaultServiceHostFactory RouteTable Routes Add new ServiceRoute XXXEndPoint factor
  • 在框中显示 html 代码,如 yahoo html 消息

    我想查看框中的用户 html 代码 例如 Gmail Yahoo html 消息 我将在诸如邮寄我的旧代码之类的事情中使用代码 我认为我太愚蠢了 div class mydiv style border 1px 000 solid THE
  • Django 测试:Postgres 上的 setUpTestData 抛出:“重复的键值违反了唯一约束”

    我在单元测试中遇到数据库问题 我认为这与我使用 TestCase 和 setUpData 的方式有关 当我尝试使用某些值设置测试数据时 测试会抛出以下错误 django db utils IntegrityError duplicate k
  • groovy/java 正则表达式检查是否为“yyyy.MM.dd”格式

    例如 我有一个代表日期的字符串 2010 12 25 如何控制它是否为 yyyy MM dd 格式 无需检查日期的有效性 你有正则表达式 在 Groovy 中 你可以这样做 boolean match 2010 12 12 d 4 d 2
  • 用于跟踪用户位置的高效后台服务

    我正在开发一个小型 Android 应用程序 我想在其中具有地理定位功能 我想要编码的是一项服务 它可以提供用户的更新位置 无论他们是否使用我的应用程序 我知道 如果我不断检查用户的位置 它会耗尽设备的电池 所以我想要一个好的解决方案 例如
  • 中断命令后循环中的多次命中

    我有一个奇怪的问题 我正在为应用程序创建一个 NUI 并将一些简单的手势绑定到左右箭头 问题是当我开始应用程序时 当我第一次做出手势时 我的应用程序连续点击两次 之后它就100 按照我的要求工作了 只有开始才是问题所在 我将两个关节和时间戳