function sameSign(a,b){
return (a ^ b)>=0;
}
function vector(a,b) {
return{
x:b.x-a.x,
y:b.y-a.y
}
}
function vectorProduct(v1,v2) {
return v1.x * v2.y-v2.x * v1.y;
}
function isPointInTrangle(p,a,b,c){
var pa=vector(p,a);
var pb=vector(p,b);
var pc=vector(p,c);
var t1=vectorProduct(pa,pb);
var t2=vectorProduct(pb,pc);
var t3=vectorProduct(pc,pa);
return sameSign(t1,t2)&&sameSign(t2,t3);
}
function needDelay(elem,leftCorner,currMousePos){
var offset=elem.offset();
var topLeft={
x:offset.left,
y:offset.top
}
var bottomLeft={
x:offset.left,
y:offset.top+elem.height()
}
return isPointInTrangle(currMousePos,leftCorner,topLeft,bottomLeft);
}
我运行时候一直显示
function vector(a,b) {
return{
x:b.x-a.x,
y:b.y-a.y
}
}
这个里面的x不能是undefined的属性?
我也遇到了这个问题,然后回头再看一遍,找出了两个问题:
#test 的第一个mouseenter方法下的第二行代码为:$(document).bind('mousemove',moveHanlder);开始写的unbind
第二个就是我下面多谢了一个timer = setTimeout(function(){......}
我也是遇到同样的问题,x是undefined,,请问这是怎么回事
function vector(a,b){
return{
x: b.x - a.x;
y: b.y - a.y
}
}
为什么总是报错
方法本身没有问题,可能是你传的p,a,b,c对应的实参currMousePos,leftCorner,topLeft,bottomLeft坐标有问题,可以打印出来瞅瞅。