首页 > 解决方案 > 如何将图像分割成多边形

问题描述

类似于一些在点击时用选定颜色填充某个区域的着色应用程序,我想将 png 图像转换为可以点击以执行特定操作的多边形。下面发布了一张示例图片。

在此处输入图像描述

对于此示例,我想实现将图像划分为区域 1、2、3 和 4 的逻辑(不一定按此顺序),因此当用户点击左上角矩形时,action1 表示右上角矩形动作2,椭圆动作,其余动作3被执行。

有谁知道如何使用 SpriteKit 来做到这一点?

标签: iosswiftsprite-kit

解决方案


您不需要将图像分割成多个区域。将点击手势识别器附加到您的图像视图。

在点击手势识别器的动作中,获取点击的坐标并确定它落入哪个区域。

矩形区域真的很容易。您只需查看坐标是否在矩形的 x/y 范围内。

对于更复杂的形状,您可以创建UIBezierPath形状并使用该UIBezierPath contains(_:)方法查看分接点是否落在特定路径中。

构建代码的最简单方法是一个结构数组,每个结构都包含一个UIBezierPath和一个闭包,如果点击位于该路径中,则调用该闭包。然后,当水龙头落在其中一个路径中时,您可以调用闭包。


推荐阅读