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

问题描述 投票:0回答:2

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

java android bitmap
2个回答
1
投票

您需要创建一个假想的网格,或者更确切地说,一个有用的网格,因为它可以帮助您解决手头的问题。这是您将把所有位图分配到其上的位置的网格,假设圆的中心位于 (0,0)。

然后你使用一点数学

math

查找像素相对于其位图在网格上的位置是否在圆的半径内。

当然距离公式是

enter image description here

或者,如果您愿意,它是 sqrt( a^2 + b^2 )。其中“a”是 x 的差,“b”是 2 点之间 y 的差。

enter image description here


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.