如何检测三角形位图碰撞android?

How to detect triangle bitmap collisions android?

我正在制作一个 Android 游戏,但我在位图碰撞检测方面遇到了一些问题。问题是其中一张位图是三角形,而第二张是矩形。我不知道如何检测它们之间的碰撞,因为现在我使用此代码:

if(policeY<((canvas.getHeight()/20)+eye.getHeight()) && (policeY+police.getHeight())>(canvas.getHeight()/20)){
            if((policeX+police.getWidth())>triangleLeft && policeX<(triangleLeft+eye.getWidth())){
                //collision
                play = false;
            }else if((policeX+police.getWidth())<triangleLeft && policeX>(triangleLeft+eye.getWidth())){
                //collision
                play = false;
            }

        }

但是,此代码将它们都作为矩形处理,这会导致碰撞,即使三角形甚至没有接触矩形。

Like in this picture the circled area is considered as a collision

我将问题设置为交集问题。将三角形的边定义为直线,然后对矩形的边使用 line-line intersection 公式。然后检查这个点是在矩形的边上还是在矩形的外面