paperjs - 检测 Paper JS 中的重叠对象
问题描述
画布上有一个矩形和几个圆圈。疏散。矩形顶部的圆圈需要具有不同的颜色。
圆必须完全在矩形内。
我如何在 Paper JS 中检测到这一点。
解决方案
item.isInside(rectangle)方法似乎完全符合您的需要。
这是演示解决方案的草图。
// 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';
}
});
推荐阅读
- javascript - node.js - 界面问题被跳过
- python - 如何处理 ValueError:索引包含使用 df.pivot 或 pd.pivot_table 的重复条目?
- javascript - Array.push() 不影响外部 .then 范围
- c# - Prism WPF AutoWireViewModel 异常
- php - 如何在 Flutter 中调试网络 API
- macros - 使用卫生宏展平语法树
- javascript - JavaScript 模式无法打开
- mariadb - 无法在 Linux Ubuntu 20.04 上安装 Mariadb
- c# - 如何使用 3 维键创建字典
- python - Python2.7没有smb模块。无法定位