如何使 ImageView 出现在圆圈内的随机位置?

Posted

技术标签:

【中文标题】如何使 ImageView 出现在圆圈内的随机位置?【英文标题】:How to make a ImageView appear at a random position within a circle? 【发布时间】:2018-04-09 09:55:44 【问题描述】:

我的布局看起来像这样

上面是一个设置,其中包含一个框架布局,其中包含一个视图和一个图像视图。视图包含一个圆形的图形。

我将在运行时访问圆半径的值/大小。

我试图在该圆圈内使用 ImageView 显示图像,但我不希望图像穿过圆圈。我将每秒更改一次 ImageView 的位置。

谁能帮我实现如何将图像放置在圆圈内的逻辑,使其不会越过圆圈。

【问题讨论】:

看起来像简单的数学运算(假设圆心是 (0,0) 那么所有 x^2 + y^2 应该小于 r^2 显然只检查顶点就足够了图像视图)...到目前为止您尝试了什么? @Selvin 感谢您的回复。坦率地说,我对这个问题一无所知。因此,我无法弄清楚要尝试什么。你能帮忙吗? 我猜这是基本的三角函数。此外,我建议“圆”实际上是周围方形框架中的一个 ,而 ImageView 浮动在它的 下方。这样,最终的不匹配角将被框架的可见部分覆盖。 @Selvin 感谢您的帮助。更多地研究您的解决方案帮助我解决了问题。能否请您发布一个答案,以便我接受。 【参考方案1】:

在@Selvin 的帮助下,我解决了这个问题。

我就是这样解决的

int x=XPOSITION;
int y=YPOSITION;
int r=RADIUS;
int r2=0;
int xy2=0;

现在这就是我检查点是否在圆圈内的方式。

  Formula = r^2>(x^2+y^2)
    r2=r*r;
    xy2=(x*x)+(y*y);

    if(r2>xy2)
    
      Point is inside the circle
    

【讨论】:

以上是关于如何使 ImageView 出现在圆圈内的随机位置?的主要内容,如果未能解决你的问题,请参考以下文章

圆圈内的可移动图像

电脑上百度地图我怎么确定一个地点的范围呢

jAVA如何使一个数组里面的元素随机交换位置

绘制半径等于手指路径的圆

如何在 html5 中显示 SVG 圆圈内的图像?

Android - ConstraintLayout 内的 TextView 向右无限远 - 如何使用 ImageView 固定并有省略号