问答详情
源自:4-2 基于用户行为预测的切换技术

关于最后一节的问题

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的属性?

提问者:百兽凯多00 2017-05-06 12:46

个回答

  • 木粉3661093
    2017-06-03 21:45:43

    我也遇到了这个问题,然后回头再看一遍,找出了两个问题:

    1. #test 的第一个mouseenter方法下的第二行代码为:$(document).bind('mousemove',moveHanlder);开始写的unbind

    2. 第二个就是我下面多谢了一个timer = setTimeout(function(){......}

  • weibo_阿飞去捉小蝴蝶_0
    2017-05-25 19:08:34

    我也是遇到同样的问题,x是undefined,,请问这是怎么回事

  • qq_你笑起来真的很迷人_0
    2017-05-17 09:39:29

    function vector(a,b){

    return{

       x: b.x - a.x;

    y: b.y - a.y

    }

    }

    为什么总是报错

  • 外部中
    2017-05-06 16:30:31

    方法本身没有问题,可能是你传的p,a,b,c对应的实参currMousePos,leftCorner,topLeft,bottomLeft坐标有问题,可以打印出来瞅瞅。