- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 HTML5 Canvas 中编写游戏。如果一条线接触到自己或对手线的任何一点,该线就会停止移动。我写的函数如下。
function hasPoints(x, y) {
for (var i = 0; i < points.length; i++) {
if (Math.abs(points[i][0] - x) < 2 && Math.abs(points[i][1] - y) < 2) {
return true;
break;
}
}
return false;
}
//check if this point crosses other players' points
if (hasPoints(p1.x,p1.y) || canPlay==false) {
clearLoop();
}else{
context.fillStyle = "green";
context.fillRect(p1.x,p1.y, 5,5);
addPoints(p1.x,p1.y);
sendMyPoints();
loopTimer = setTimeout('drawLine()', 50);
}
大多数情况下它都有效。但在某些特殊情况下(如下图所示)它根本无法返回 false。
有人可以帮我改进这个功能,使其完美运行吗?
最佳答案
不要使用点,使用矢量。向量数组。找出一个点是否与一条线(向量)相接触只需安装一个有两个点的三 Angular 形并进行点向量分析,如果三 Angular 形的面积接近于零(设置限制),则此接触。
y1 x1 1
y2 x2 1 = (y1*x2*1)+(x1*1*y3)+(1*y2*x3)-(x1*y2*1)-(y1*1*x3)-(1* x2*y3)
y3 x3 1
结果应接近于零 (0.012121 ...)
这是一种发现线是否与目标方向对齐的方法
http://en.wikipedia.org/wiki/Determinant
关于javascript - 检查一个点是否穿过一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14543776/
如何迭代(一行)分割函数给我的每个类? 我试过这个: 编辑(抱歉) $("p").attr("class").split(' ').each (function (i,n){alert(n)}
我有一条垂直线和一条水平线,当我动态调整我的 Canvas 父级时,我想调整它们的大小。 (地标) 我希望水平线始终距 Canvas 的左右边界 25 处,距底部边界 13 处。 垂直线也是如此,距上
我有一个 y 变量,我试图在图形的顶部和底部针对两个相关的 x 轴绘制它(例如 y="立方体中的事物数",x1="立方体的边长", x2="立方体的体积")。我在 numpy 数组中有 y、x1、x2
我想画一条简单的水平线,并在这条线 flex 的地方制作动画。我有这个动画的视频。你能给我一些建议如何开始以及我必须使用哪个 js/css 吗? 都是关于矩形底部的线: http://www.stop
我是一名优秀的程序员,十分优秀!