2012-05-31 38 views
0

我需要显示一个视图,我需要使用顶点对多边形进行动画处理。该多边形应该是可触摸的,因此触发事件后,我需要能够使用一些动画过程来移动顶点,一旦它触发了该事件。
我需要像这样的三个多边形来形成3D立方体。视图上的可触摸多边形?

黑暗的区域是我有立方体的视图(实际上是一个图像)。

enter image description here

enter image description here

回答

1

有在这个过程分两步:绘图和事件处理。

通过在视图中实现drawRect,在屏幕上计算立方体的坐标,然后创建并绘制路径,这对工作得很好的路径非常适用,可以使用Quartz2D进行绘制。另一种方法使用OpenGL视图来指定三角形。

在事件处理结束时,您可以实现onTouchesBegan:和朋友来获取交互的位置,并可能hitTest:允许其下的其他视图处理后续事件。接下来您需要决定的是您想要的准确度 - 您可以定义一个大致与立方体匹配的方框,并测试触摸方式。无论如何,大多数人都会想要在中间的某个地方触摸它。为了进行准确的测试,您需要屏幕坐标,并测试每个多边形中的每个三角形以查看它是否包含位置。 Google为此需要数学计算a nice explanation。在OpenGL的情况下,您将不得不手动重复由OpenGL执行的计算以找出多边形已经结束的屏幕上的位置。