圆形与多边形之间的碰撞检验!

   
Circle.prototype.project = function (axis) {
   var scalars = [],
       point = new Point(this.x, this.y);
       dotProduct = new Vector(point).dotProduct(axis);
/*根据圆心投影计算出园两边投影*/
   scalars.push(dotProduct);
   scalars.push(dotProduct + this.radius);
   scalars.push(dotProduct - this.radius);


   return new Projection(Math.min.apply(Math, scalars),
                         Math.max.apply(Math, scalars));
};

你可能感兴趣的:(canvas)