我按照代码在 Canvas 上画了一个椭圆,效果很好:
Paint paint = new Paint();
canvas.drawOval(new RectF(10, 10, 300, 100), paint);
当用户点击屏幕时,如何判断用户点击是否在椭圆内?
注意事项: 当我绘制一个 Rect 时,我可以使用 Rect.contains(int x, int y) 来确定用户是否在其中单击。但现在我正在画一个椭圆。
提前致谢!
最佳答案
当您触摸屏幕时,您将获得 x
和 y
坐标。您还可以知道中心或椭圆形。
x, y
是触摸时的坐标,center_x
和 center_y
是椭圆中心的坐标。 R为半径。
float dx = Math.abs(x-center_x);
float dy = Math.abs(y-center_y);
float R = radius ;//radius of circle.
boolean checkDistance(float dx,float dy,float R)
{
if(dx>R)
{
return false;//outside
}
else if(dy>R)
{
return false;//
}
else
{
return true;
}
}
实际上这个解决方案是针对一个圆的,但你可以使用它得到一个很好的近似值,或者可以敞开心扉根据你的目的更改此代码。
关于android - 如何确定用户是否触摸了 Canvas 中的椭圆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15755823/