任何人对如何在iPhone上实现以下内容有任何想法?我们有一张美国地图,它有不同的颜色区域(气候区域,我相信).它们不是矩形的,不遵循州或邮政编码或县或任何其他定义的行.所以,我们的地区非常圆,甚至不一定是连续的.
我很乐意让我们的用户能够点击他们的区域,我可以告诉他们从哪里触及它所在的区域,但对于我的生活,没有做出许多很多矩形来做到最合适曲线,我无法弄清楚如何做到这一点.
有任何想法吗?
编辑:区域可能像这个... 链接文本一样难
Ed *_*rty 10
这些地区是如何定义的?如果可以获取点数据,则使用以下命令创建CGPath:
CGPathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path,null,xpoints[0],ypoints[0])
for (int i = 1; i < numpoints; ++i) {
CGPathAddLineToPoint(path,null,xpoints[i],ypoints[i]);
}
CGPathCloseSubpath(path);
Run Code Online (Sandbox Code Playgroud)
然后,每当用户触摸时,对于每个区域,检查它是否包含触摸点:
if (CGPathContainsPoint(path,null,touchPoint,false)) ...
Run Code Online (Sandbox Code Playgroud)
当你完成这些地区时,别忘了发布:
CGPathRelease(path);
Run Code Online (Sandbox Code Playgroud)
请注意,您可以在一个CGPathRef中创建多个单独的子路径,并在检查包含时检查所有子路径.
如果你愿意,你可以尝试使用弧线或曲线来获得正确的线条,但这是我不太熟悉的东西.
也许你需要一个颜色编码的位图来进行你的命中测试.
您可以显示一个位图,但另一个位图具有单色编码区域.当用户单击显示地图时,您可以检查该命中测试图中该像素的颜色,然后执行相应的操作.
| 归档时间: |
|
| 查看次数: |
8013 次 |
| 最近记录: |