如果我有这样的QuadCurve(+
= node):
+ +
\ ./
+--⁻⁻
我在Java 2D中填写结果是这样的:(x
=有色)
+xxxxxxxxx+
\xxxxxx./
+--⁻⁻
但我想为另一方着色:
+ +
x\ ./x
xxx +--⁻⁻xx
xxxxxxxxxxx
通过在曲线周围绘制一个矩形,我希望为另一面着色,然后用背景颜色填充曲线。
但这不足以填充凸圆角(基于QuadCurves)多边形。如果矩形的某些坐标(如我使用的技巧中所述)重叠多边形的其他部分。这是两个图像(绿色区域是我的多边形):
alt text http://img204.imageshack.us/img204/7823/convexpolygon.png alt text http://img708.imageshack.us/img708/3669/convexpolygon2.png
所以,问题很简单:“我如何为曲线的形状构建着色?”
但我认为答案并不简单......
任何建议都非常值得赞赏 提前谢谢。
如果我没有得到答案,也许我会为这个问题提供赏金
答案 0 :(得分:2)
选择一个已知在Polygon内的点。
了解“边界颜色”(在本例中为黑色)。
recurrsiveFill(Pixel p, Color fill, Color bound) {
p.setColor(fill);
if(p.left.color != bound && p.left.color != fill)
recurrsiveFill(p.left , fill, bound);
if(p.right.color != bound && p.right.color != fill)
recurrsiveFill(p.right, fill, bound);
if(p.up.color != boun d&& p.up.color != fill)
recurrsiveFill(p.up, fill, bound);
if(p.down.color != bound && p.down.color != fill)
recurrsiveFill(p.down, fill, bound);
}
您可以根据自己的特定需求进行调整。
这适用于任何填充完全有界的形状。您还需要合并特殊条件(例如图片的边缘)。