0
在我的應用程序中,用戶可以使用「筆」工具繪製出形狀,就像在Photoshop中一樣。座標存儲在一個點陣列中,路徑由它們組成。路徑是在Canvas
上繪製的。一個路徑是否包含一個點?
我想能夠檢測用戶是否點擊了形狀,但我不知道如何開始。如果它是一個規則的形狀,例如rectangle
,我可以創建一個區域並使用它,但它們的路徑可以包含許多點並且可以是任何形狀。
感謝您的幫助......
在我的應用程序中,用戶可以使用「筆」工具繪製出形狀,就像在Photoshop中一樣。座標存儲在一個點陣列中,路徑由它們組成。路徑是在Canvas
上繪製的。一個路徑是否包含一個點?
我想能夠檢測用戶是否點擊了形狀,但我不知道如何開始。如果它是一個規則的形狀,例如rectangle
,我可以創建一個區域並使用它,但它們的路徑可以包含許多點並且可以是任何形狀。
感謝您的幫助......
找到了解決由於本網站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;
}
你shold CHACK這一點;) http://stackoverflow.com/questions/9588003/android-how-to-檢查-IF-A-路徑包含-觸碰點 – user3095990