ios - 如何将图像分割成多边形
问题描述
类似于一些在点击时用选定颜色填充某个区域的着色应用程序,我想将 png 图像转换为可以点击以执行特定操作的多边形。下面发布了一张示例图片。
对于此示例,我想实现将图像划分为区域 1、2、3 和 4 的逻辑(不一定按此顺序),因此当用户点击左上角矩形时,action1 表示右上角矩形动作2,椭圆动作,其余动作3被执行。
有谁知道如何使用 SpriteKit 来做到这一点?
解决方案
您不需要将图像分割成多个区域。将点击手势识别器附加到您的图像视图。
在点击手势识别器的动作中,获取点击的坐标并确定它落入哪个区域。
矩形区域真的很容易。您只需查看坐标是否在矩形的 x/y 范围内。
对于更复杂的形状,您可以创建UIBezierPath
形状并使用该UIBezierPath
contains(_:)
方法查看分接点是否落在特定路径中。
构建代码的最简单方法是一个结构数组,每个结构都包含一个UIBezierPath
和一个闭包,如果点击位于该路径中,则调用该闭包。然后,当水龙头落在其中一个路径中时,您可以调用闭包。
推荐阅读
- git - Gitlab和已合并分支的多个合并请求
- javascript - 返回奇数
- swift - 推导集合中所有可能的数学表达式以获得目标值的算法
- vba - VBA代码按顺序和数据行添加数字
- c - 为什么 while 循环不适用于此链接列表程序?
- clojure - line-seq 在 clojure 中的 java.io.BufferedReader 上冻结
- ios - Swift 中的持续动画视图
- android - 改造在retrofit2.retrofit android studio中不公开
- php - Wordpress woocommerce:在首页上显示特定的子类别
- javascript - 嵌套循环遍历 Vue 实例中的对象数组