2016-12-19 16 views
1

オブジェクト(私のイメージ内のイメージ)が別のオブジェクト(私の例ではポリゴン)の中にあるかどうかをチェックする方法はありますか? 私は小さなjsfiddleを作成:画像が多角形の内部にある場合はここでhttp://jsfiddle.net/onot3w11/イメージがポリゴンの内部にあるかどうかを確認する

は、基本的にはポリゴンと画像とテストを追加し、私のコードです:

/*_________adding shapes____*/ 
var imgInstance = new fabric.Image(imgElement, { 
    left: 100, 
    top: 100, 
    angle: 30, 
    opacity: 0.85,    
    width: 150, 
    height: 150, 
}); 


var pol2 = new fabric.Polygon([ 
    {x: 300, y: 50}, 
    {x: 300, y: 250}, 
    {x: 150, y: 250}, 
    {x: 150, y: 50} ], { 
    left: 20, 
    top: 100, 
    angle: 0, 
    fill: 'grey', 
    opacity: 0.1 
    } 
); 
canvas.add(pol2); 
canvas.add(imgInstance); 

/*_________testing if image is inside polygon____*/ 
console.log(imgInstance.isContainedWithinObject(pol2)); 

クリスマスツリーはの内側にありますポリゴンですが、その境界のために、 "isContainedWithinObject"はコンソールで "false"を返します。 2つのオブジェクトが互いに交差する場合(ただし、オブジェクトが完全に別のオブジェクト内にある場合はfalseを返します)http://fabricjs.com/intersection)、trueを返す関数もあります。たぶん私は両方のfuntionsを組み合わせて私が望むものを得ることができたかもしれませんが、より簡単な解決策があることを願っています。

私はちょっと試してみましたが、オブジェクトの内側に何かがある場合は、その中心を取得し、この点がオブジェクトに含まれているかどうかを確認することをお勧めします。画像の中心を取得する方法はありますか?この問題のよう

答えて

関連する問題