对于循环 - 圆而不是线性

时间:2015-12-08 14:48:11

标签: for-loop unity3d textures geometry

我从Unity中的Texture2D(512 x 512)获取了一系列像素数据。

目前,我通过使用for循环并将外部像素设置为Color.black来在此纹理周围添加边框。

但是一些Texture2D实际上是圆形的(就图像/照片本身而言)。我想在这些图像周围添加一个圆形边框。

典型的for循环(r ++& c ++)给出了一个线性(左下角,右上角)值,它不适用于圆形,对吗?是否有某种算法可用于制作for-loop循环(就r和c值而言)?

这有什么意义吗?

感谢。

2 个答案:

答案 0 :(得分:1)

有趣的问题:)

我无法想出一个解决方案来制作for循环'循环',因为x和y相互依赖,简单的x ++ y ++是不可能的。

一个简单的解决方案是在某个循环内计算x和y。就像使用#import "Constants.h" NSString *MyConstantName = @"MyConstantValue"; 并迭代x = r*cos(t); y = r*sin(t);

一样

我制作了fiddle,它使用t在html画布上绘制圆圈:D

答案 1 :(得分:0)

根据您想要的最终结果,您可能最好通过着色器进行修改以进行边缘检测(但这取决于您的纹理是什么)。

另一个可能更简单的解决方案是在原始图层上叠加第二个纹理,其中第二个纹理只是边框,其余部分为alpha'd out。