我正在绘制圆线,并希望线条匹配时会产生错误。我已经完成了一些编码,并且此代码可以在线条上画线,但问题在于线条匹配时它无法产生错误。所以任何人都可以建议我做错了什么。线条碰撞时产生线条并产生错误
代码
public class DrawView extends View implements View.OnTouchListener {
private static final String TAG = "DrawView";
List<Point> points = new ArrayList<Point>();
Paint paint = new Paint();
public DrawView(Context context) {
super(context);
setFocusable(true);
setFocusableInTouchMode(true);
DrawView.this.setOnTouchListener(DrawView.this);
paint.setColor(Color.WHITE);
paint.setAntiAlias(true);
}
public void onDraw(Canvas canvas) {
for (Point point : points) {
canvas.drawCircle(point.x, point.y, 5, paint);
// canvas.drawLine(point.x, point.y, 5, 0, paint);
// canvas.drawPaint(p);
// Log.d(TAG, "Painting: "+point);
}
}
public boolean onTouch(View view, MotionEvent event) {
// if(event.getAction() != MotionEvent.ACTION_DOWN)
// return super.onTouchEvent(event);
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
for (int i = 0; i < points.size(); i++) {
if (point.equals(points.get(i))) {
System.out
.println("*****************************ERROR*******************************************");
} else {
System.out.println("Value of points" + points);
System.out
.println("***********************ELSE***********************************");
}
}
points.add(point);
invalidate();
Log.d(TAG, "point: " + point);
return true;
}
}
class Point {
float x, y;
public boolean equals(Object o) {
if (!(o instanceof Point))
return false;
Point p = (Point) o;
return x == p.x && y == p.y;
}
public String toString() {
return x + ", " + y;
}
}
不要全部限制你的问题,那只会让人失望。 –
定义更清楚你称之为“碰撞” – rds
正确阅读我已经提到所有东西 – Dilip