【发布时间】:2014-01-21 20:29:00
【问题描述】:
我想检查动画圆元素是否与一组路径元素中的动画路径元素发生冲突(重叠)。
为了使示例更易于理解,我为圆圈设置了动画并希望您向我展示,如何让绿色圆圈在其中一个黑色圆圈与它发生碰撞时显示为红色:
小提琴的代码:
JS
var paper = Raphael("canvas", 800, 800);
var cx = 400;
var cy = 400;
// Helpers
function rand(min, max) {
return Math.random() * (max - min) + min;
}
var bigCircle = paper.circle(cx, cy, 500);
function flyMeteor(){
var ptOnCircle = bigCircle.getPointAtLength(rand(1,bigCircle.getTotalLength()));
var anim = Raphael.animation({
fill: 'black',
opacity: 0,
cx: ptOnCircle.x,
cy: ptOnCircle.y,
stroke: 0,
r: 0
},1200,function(){
this.remove();
});
var circle = paper.circle(cx, cy, 4).attr({
fill:'black',
stroke: 0
}).animate(anim);
};
setInterval(function(){
flyMeteor();
},200);
var circle = paper.circle(250, 250, 80).attr({
fill:'green',
stroke: 0
});
HTML
<div id="canvas"></div>
非常感谢您的帮助!
【问题讨论】:
标签: path jquery-animate raphael collision geometry