探测完全在另一个物体内部的物体
Detect object completely inside another object
大家好,
我想知道是否有一种方法来检测织物对象是否完全在另一个对象内?
我在文档中查看object.intersectsWithObject(object2)
,但不幸的是,一旦对象完全在object2内,该函数不再返回true,而是false。
其他人有这个问题吗?我一点也不知道该怎么做。我在fabric.js中搜索了函数。有人能帮忙吗?
intersectsWithObject: function(other) {
// extracts coords
function getCoords(oCoords) {
return {
tl: new fabric.Point(oCoords.tl.x, oCoords.tl.y),
tr: new fabric.Point(oCoords.tr.x, oCoords.tr.y),
bl: new fabric.Point(oCoords.bl.x, oCoords.bl.y),
br: new fabric.Point(oCoords.br.x, oCoords.br.y)
};
}
var thisCoords = getCoords(this.oCoords),
otherCoords = getCoords(other.oCoords),
intersection = fabric.Intersection.intersectPolygonPolygon(
[thisCoords.tl, thisCoords.tr, thisCoords.br, thisCoords.bl],
[otherCoords.tl, otherCoords.tr, otherCoords.br, otherCoords.bl]
);
return intersection.status === 'Intersection';
}
谢谢你的帮助塞巴斯蒂安。
如果你想知道一个对象是否完全在另一个对象内部,你应该使用isContainedWithinObject:
isContainedWithinObject(其他)→{布尔}
§检查对象是否已满包含在另一个对象的区域内
参数:
Name: other
对象
:Description: Object to test
来源:fabric.js,第12300行
返回:true如果对象完全包含在另一个对象
:布尔
来源:
isContainedWithinObject: function(other) {
var boundingRect = other.getBoundingRect(),
point1 = new fabric.Point(boundingRect.left, boundingRect.top),
point2 = new fabric.Point(boundingRect.left + boundingRect.width, boundingRect.top + boundingRect.height);
return this.isContainedWithinRect(point1, point2);
}
它使用你要测试的对象的边界框。
相关文章:
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- 在另一个Find(..)的回调内部查找,如何逃离回调地狱
- 从另一个(初学者内部)访问嵌套的javascript函数
- 方法不在另一个方法内部调用
- 如何使用jQuery访问属于函数内部另一个函数的对象的属性
- 在方法内部调用另一个方法 ReactJS
- Redux 操作创建者在另一个内部调用一个
- 为什么这个内部对象文字等于另一个对象
- JS:我如何访问一个函数内的变量值,而另一个函数内部的变量值,并且两个函数属于同一个对象
- 如何在 JavaScript 中从另一个外部函数访问嵌套的内部函数
- 在打字稿中隐式引用另一个内部模块
- 在 PHP 中将一个外部图像替换为另一个内部图像
- 我想要一些在另一个回调函数内部的结果
- 从另一个帧获取帧的内部宽度
- 不能连接一个 ajax 中的 javascript 变量,而另一个 ajax 内部的 javascript 变量
- 当外部链接是内部的另一个链接时,外部链接不会包装元素
- 我可以从另一个_each内部打破一个_each吗?
- JavaScript - 尝试从另一个对象内部访问一个对象方法,得到未定义的错误
- 如何将 iframe 位置内部重定向到另一个位置
- jQuery加载内部另一个加载不工作