在我的应用程序中,用户可以使用“笔”工具绘制形状,就像在Photoshop中一样。坐标存储在点阵列中,并且从它们构成路径。路径是在Canvas
上绘制的。
我希望能够检测用户是否点击了形状,但我不知道如何开始。如果是常规形状,例如rectangle
,我可以创建一个区域并使用它,但它们的路径可以包含许多点并且可以是任何形状。
感谢您的帮助......
答案 0 :(得分:0)
感谢此网站http://alienryderflex.com/polygon/
找到了解决方案然后我编辑它以使用Android和java。如果有人有兴趣,这是解决方案(非常类似于原始):
public boolean clicked(MotionEvent e) {
int j = points.size() -1 ;
boolean oddNodes = false;
for (int i = 0; i < points.size(); i++) {
if ((points.get(i).y < e.getY() && points.get(j).y >= e.getY() || points
.get(j).y < e.getY() && points.get(i).y >= e.getY())
&& (points.get(i).x <= e.getX() || points.get(j).x <= e
.getX())) {
if (points.get(i).x + (e.getY() - points.get(i).y)
/ (points.get(j).y - points.get(i).y)
* (points.get(j).x - points.get(i).x) < e.getX()) {
oddNodes = !oddNodes;
}
}
j = i;
}
return oddNodes;
}