如何使 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 出现在圆圈内的随机位置?的主要内容,如果未能解决你的问题,请参考以下文章
Android - ConstraintLayout 内的 TextView 向右无限远 - 如何使用 ImageView 固定并有省略号