当前位置: 首页 > 知识库问答 >
问题:

如何填充形状(椭圆形)外部的颜色

傅正阳
2023-03-14
Graphics2D g2d = <my_image>.createGraphics();
...
g2d.fillOval(x, y, width, height);

我在这方面收效甚微。我想到的唯一一件事就是在我想要的圆所占的空间周围画出巨大的拱形,因为我很难计算出数学来。

编辑:为什么我不能填满整个图像,然后再画圆圈,因为圆圈里的不是单一的颜色,而是我想拍摄一张图像(任何图像,比如我自己的照片),并能够在图像中间的圆圈周围添加单一的颜色。所以,在画它之前,圆圈中间的东西就已经存在了,它不是由代码绘制的。

共有1个答案

魏俊茂
2023-03-14

下面是一个基于Java AntiFillRect的答案的示例(填充所述矩形之外的所有内容)。

它使用java.awt.geom.area中的substract方法。

        Area outter = new Area(new Rectangle(0, 0, img.getWidth(), img.getHeight()));
        int x = (img.getWidth() / 4) ;
        int y = (img.getHeight() / 4);
        Ellipse2D.Double inner = new Ellipse2D.Double(x,y, img.getWidth()/2, img.getHeight()/2);
        outter.subtract(new Area(inner));// remove the ellipse from the original area

        g2d.setColor(Color.BLACK);
        g2d.fill(outter);

没有裁剪(即没有G2D.fill(outter)部分):

 类似资料:
  • 问题内容: 请提供有关如何在椭圆形或圆形上进行裁剪的想法。请分享您的想法。 问题答案: 通过增加半径,它将变得更圆滑。 只要图像是正方形,就可以通过将宽度的一半作为拐角半径来获得一个完美的圆: 您还需要添加 斯威夫特4.2

  • 我正在为一个家庭作业制作一个ms绘画风格的程序。在这个家庭作业中,你应该能够右键点击一个形状并在屏幕上移动它。填充的形状可以在形状内的任何地方右键单击,而未填充的形状则应在形状的边框上右键单击并选择。 我遇到的问题是,当我最初启动程序,绘制和未填充的形状,并尝试拖动它,它会拖动,但一旦我再次放下它,它的行为正确,变得不可拖动,所有未来未填充的形状都相应地行动。 TLDR:我希望所有填充的形状都是可

  • 主要内容:圆角矩形,椭圆示例JavaFX Shape类定义了常见的形状,例如线,矩形,圆,Arc,CubicCurve,Ellipse和QuadCurve。 在场景图上绘制矩形需要宽度,高度和左上角的(,)位置。 要在JavaFX中绘制一个矩形,可以使用类。 上面的代码生成以下结果。 圆角矩形 类实现了弧宽和弧高。可以使用这些功能来绘制圆角矩形。 上面的代码生成以下结果。 椭圆示例 上面的代码生成以下结果。

  • 我一直在寻找一段时间,现在在如何填补一个形状与一定的颜色使用乌龟在java。假设我有这样的东西: 其中是:

  • 我按照ItextSharp的示例获取图形结构,并使用以下代码获取矩形坐标: 我尝试了renderInfo.getfillColor();但是没有这样的方法。 我想获得额外的矩形属性: 像矩形填充颜色,(一些类似于html中的DIV style=“background:blue;border:black;”标签)我如何获得它?

  • 问题内容: 我用线画一个三角形。如何填充颜色?到目前为止,我只能为线条成功上色,而不能填充颜色。 问题答案: 从顶点制作一个,然后填充它,方法是: