如何检测三角区域的触摸

时间:2010-06-08 21:35:12

标签: iphone cocoa-touch

对于我的应用程序,我需要将iphone的屏幕对角分成4个部分,并检测触摸的部分。 我很困惑,因为我的区域是三角形而不是正方形,我找不到解决方案来检测哪个三角形被触摸了......

我用方法touchesBegan得到了触摸点,并且我被卡住了...... :(如何定义三角形形状并测试它是否被触摸?使用View?layer?

如果有人可以帮助我,那真的很酷。

2 个答案:

答案 0 :(得分:3)

给定矩形的宽度,高度以及矩形中一个点的x,y,你可以这样做......

int s = y * width / height;
int code = (x > s) + 2*(x > width - s);

代码将是0到3之间的数字,表示已选择哪个部分。

答案 1 :(得分:1)

本网站显示了一些算法来检查一个点是否在三角形内。

http://www.blackpawn.com/texts/pointinpoly/default.html

根据应用程序的运行速度,您可能需要预先计算并存储所有可能的x和y坐标的矩阵。这个矩阵看起来像这样:

point_inside [X] [Y] [三角形]

其中X和Y是屏幕中的坐标,“三角形”是指向该点应该是哪个三角形的指针。