首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对危险感知考试进行编码

如何对危险感知考试进行编码
EN

Stack Overflow用户
提问于 2015-03-17 14:12:20
回答 1查看 136关注 0票数 2

我一直在网上寻找例子,看看风险感知考试是如何编码的,但没有效果。有人能告诉我关于危险感知测试编码的要点吗?或者网络上是否有类似的例子?

在英国,危险感知考试是一种必修考试,作为获得驾驶执照的一部分。它涉及从司机的角度看视频,如果你注意到危险,点击视频。考试记录了你注意到了多少危险,并且会给你一个分数,比如45个中的40分。这里有一个例子:http://theory-test-online.co.uk/free-hazard-perception-test-demo.htm,我想看看如何记录视频中的点击率。点击还必须在一定的时间框架周围的危险,以计数为正确。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-17 14:51:47

这个问题很笼统,也很具体。这是普遍的,因为你的目标可以在很多方面实现,而具体的原因是你询问了一个非常具体的考试类型。以下是一些让你开始学习的信息:

您可以使用HTML5视频或类似于Video.js的东西来播放视频并控制其位置。

您可以使用addEventListenerjQuery .click()侦听单击事件,每次单击时检查当前视频位置,查看单击是否应出现在某个范围内,并相应地计数这些点(添加一个点,当用户单击并减去时,确保每个危险不超过1个点)。

数数分数可能很有挑战性,但以下是如何做到的:

假设您有一系列正确的危险启动-停止间隔,以及它们是否被单击的信息,以及在没有危险的情况下点击的一些惩罚点:

代码语言:javascript
复制
var harards, penalties;

hazards = [
  {
    start: 1,
    stop: 2,
    passed: false
  },
  {
    start: 4,
    stop: 5,
    passed: false
  },
  {
    start: 8,
    stop: 10,
    passed: false
  }
];

penalties = 0;

(当然,对于真实数据,它更像是:start: 38.8, stop: 42.3等。)现在,对于每一次单击,您都可以检查视频位置并使用如下所示进行测试:

代码语言:javascript
复制
function testHazard(time) {
  var i;
  for (i = 0; i < hazards.length; i++) {
    if (time >= hazards[i].start && time <= hazards[i].stop) {
      hazards[i].passed = true;
      return;
    }
  }
  penalties++;
}

如果点击是在持续时间内,它将标记每一个危险通过,或增加处罚,否则。

现在计算点数很简单:

代码语言:javascript
复制
function countPoints() {
  var i, points = 0;
  for (i = 0; i < hazards.length; i++) {
    if (hazards[i].passed) {
      points++;
    }
  }
  return (points - penalties);
}

见:演示 on JS Bin。

另外一个提示:您可能希望使用滑鼠事件(或jQuery .mousedown()),而不是单击事件,以使其与双击等操作良好。例如,考试来自你的评论似乎无法很好地处理双击和多次单击,并打印:“您以不可接受的方式响应此剪辑!”另外,我也不确定这次考试是否正确地计算了点击次数。我上面所写的代码对于任意数量的点击都应该很好,当人们单击时,当他们不应该点击时,只会产生更低(甚至是负)的点数,同时将一个危险期间的任何点击数作为一个点来计算。

一些有用的资源:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29101341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档