android 在圆内的每个像素上运行

uhry853o  于 4个月前  发布在  Android
关注(0)|答案(2)|浏览(47)

假设我有很多小位图,我在它们周围画了一个大圆圈,但不一定所有的位图都在圆圈内(像一些可以是一半的方式或有他们的边缘伸出),我想运行的每一个像素的位图在圆(这意味着圆圈外的像素不会被计算在内,只有圆圈内的部分),我该怎么做,我知道如何在所有位图的每个像素上运行,但不是以特定的形状运行。

tsm1rwdh

tsm1rwdh1#

你需要创建一个假想的网格,或者说一个只在帮助你解决手头问题时才有用的网格。这是一个网格,你将把所有位图分配到一个位置上,想象圆的中心位于(0,0)。
然后你用一点数学


的数据
如果一个像素是相对于它的位图在网格上的位置,是在圆的半径内。
当然距离公式是



或者,如果你愿意,它是sqrt(a^2 + b^2)。其中'a'是x的差异,'b'是两个点之间y的差异。

jobtbby3

jobtbby32#

对于快速生成圆的代码,您可以从圆的方程开始,并使用Bresenham的方法。使用对称,您可以同时从左侧和右侧绘制圆,这允许您轻松地在磁盘上绘制(水平线)。

相关问题