我喜欢一些关于处理这个问题的最佳方法的建议.
我有一个想法是使用WebVIEw,只有一个JPG和一个HTML图像映射,但我真的更喜欢使用某种支持曲线的原生UI元素.
有什么建议?
解决方法 我们有这样的问题.为了解决这个问题,我们在Adobe Illustrator中创建了一个黑白面具.您需要为所需的每个不同区域执行此 *** 作.接下来,我们导出了这个文件.我不记得文件导出选项,但基本上你得到一个文本文件,其中包含一些路径数据,包括行,贝塞尔曲线等.
然后我们接受了这个文件并写了一个解析它的导入器并创建了一个CGPath.
最后阶段很简单.您可以从UItouch获取触摸点并执行CGPathContainsPoint调用.
这是一些伪代码:
>在我们使用“1 XR”之前跳过线.那就是
在后续行中指示有意义的内容.
>使用“”分隔符将行拆分为一个组件数组.
>该行的最后一个组成部分是 *** 作.如果它是“m”则是路径移动,如果它是“C”,则它是一条bezIEr曲线,如果它是“L”则它是一条线.
>如果它是“Y”或“V”,那么您需要获取前一行的组件并解析如下:
(a)组件数包括行动,因此我们需要减少这一点.例如. 274.5600 463.6800米
(b)如果这条线有四个坐标而前一个有两个坐标,那么它就是贝塞尔节点的一个点节点.计算贝塞尔曲线点如下:
cp1x = prevIoUs line's components object at index 0 cp1y = prevIoUs line's components object at index 1 cp2x = this line's components object at index 0 cp2y = this line's components object at index 1 x = this line's components object at index 2 y = this line's components object at index 3
(c)否则,如果该线有四个坐标,前一行有四个或六个坐标,则如下图所示:
cp1x = this line's components object at index 0 cp1y = this line's components object at index 1 cp2x = this line's components object at index 2 cp2y = this line's components object at index 3 x = this line's components object at index 2 y = this line's components object at index 3
其中cp是“控制点”.所以你有控制点1和控制点2及其各自的x和y坐标.
总结以上是内存溢出为你收集整理的objective-c – 如何检测/处理弯曲区域的触摸事件?全部内容,希望文章能够帮你解决objective-c – 如何检测/处理弯曲区域的触摸事件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)