我在2D平面上有两条光线延伸到无限远,但两者都有一个起点.它们都由起点和矢量在射线方向上描述,该射线延伸到无穷远.我想知道两条光线是否相交,但我不需要知道它们相交的位置(它是碰撞检测算法的一部分).
到目前为止,我所看到的一切都描述了找到两条线或线段的交点.是否有快速算法来解决这个问题?
我正在努力在简单的等距Sprite Kit游戏中实现点击处理.
我有一个游戏场景(SKScene)和一个包含多个Tile对象(SKSpriteNode)的Map(SKNode).
以下是地图的屏幕截图:

我希望能够检测到用户点击的磁贴,所以我在Tile对象上实现了mouseDown.这是我在Tile.m中的mouseDown:
-(void)mouseDown:(NSEvent *)theEvent
{
[self setColorBlendFactor:0.5];
}
Run Code Online (Sandbox Code Playgroud)
代码似乎工作正常,但有一个小问题:节点重叠,并在节点的透明部分检测到click事件.示例(已添加rects以仅说明问题.它们未在逻辑中使用):

如您所见,如果我点击图块7的左上角,则图块8变为透明.

我尝试了在点击位置获取所有节点并检查点击是否在CGPath内部而没有成功(我认为坐标有问题).
所以我的问题是如何检测纹理上的点击而不是透明部分?或者我的方法可能是错的?
任何意见,将不胜感激.