java - 填充两个 CubicCurve2D.Float 和一条线内的区域

标签 java scala graphics2d

我正在用户界面中绘制一个选项卡。我有我想要的大纲。如何填充该区域?

这是绘制选项卡边框的代码:

val g2 = g.asInstanceOf[Graphics2D]

g2.translate(x, y)
val q = new CubicCurve2D.Float
q.setCurve(0, h, 8, h, 6, 0, 16, 0)
g2.setColor(Color.RED)
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON)
g2.draw(q)
val end = w - 8
g2.drawLine(17, 0, end, 0)
q.setCurve(end, 0, end+10, 0, w, h, w + 8, h)
g2.draw(q)

这是它画的线(红色的):image

我希望能够填充红线的内部。

最佳答案

我不懂 Scala,但在 Java 2D 中,Graphics2D 对象可以填充或绘制任何 Shape 的轮廓。目的。对于一些任意形状,你可以用 GeneralPath 来定义它。对象,例如:

GeneralPath path = new GeneralPath();
path.lineTo(10, 10);
path.lineTo(0, 10);
path.lineTo(0, 0);
graphics.setColor(Color.RED);
graphics.fill(path);

GeneralPath 对象还有绘制贝塞尔曲线和四边形的方法,因此您可以绘制路径,然后选择填充或绘制轮廓。

GeneralPath 添加了新链接

关于java - 填充两个 CubicCurve2D.Float 和一条线内的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3657460/

相关文章:

java - 用Java绘制形状

java - 如何在恢复代码之前等待 setIcon() 方法执行?

java - Ruby 路径和带有存档的小程序

java - "Java programming language type"的定义是什么

java - 连接两个java项目

scala - java.lang.ClassNotFoundException:类scala.runtime.Nothing运行scoobi WordCount示例时

scala - Play 应用程序中的 Twitter Bootstrap

java - 创建 kubernetes 部署时,Quarkus RestClient 属性的环境值无效

scala - 了解以函数作为参数的辅助构造函数中的 Scala 行为

java - Graphics2D drawString() 不同的颜色