在Paper JS中检测重叠对象

问题描述 投票:0回答:1

画布上有一个矩形和几个圆圈。散。位于矩形顶部的圆圈需要具有不同的颜色。

圆必须完全在矩形内。

如何在Paper JS中检测到这一点。

paperjs
1个回答
4
投票

方法item.isInside(rectangle)似乎完全符合您的需要。

这是一个展示解决方案的sketch

// create 3 circles scattered on the canvas.
var circles = [
    new Path.Circle({
        center: view.center - 100,
        radius: 50,
        fillColor: 'orange'
    }),
    new Path.Circle({
        center: view.center,
        radius: 50,
        fillColor: 'orange'
    }),
    new Path.Circle({
        center: view.center + 150,
        radius: 50,
        fillColor: 'orange'
    })
];

// Create a rectangle.
var rectangle = new Path.Rectangle({
    from: view.center - 80,
    to: view.center + 80,
    strokeColor: 'black'
});

// Scale things up so that we can see better.
project.activeLayer.fitBounds(view.bounds.scale(0.8));

// For each circle...
circles.forEach(circle => {
    // ...if circle is contained in rectangle bounds...
    if (circle.isInside(rectangle.bounds)) {
        // ...change circle color.
        circle.fillColor = 'blue';
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.