【问题标题】:Java: line-stroke with filled shapeJava:填充形状的线条描边
【发布时间】:2011-07-27 10:36:41
【问题描述】:

这不是很重要,但它困扰了我一段时间。

问题描述:
给定: 一条线 (Line2D)
想要: 将该线绘制为楔形(填充一般路径)

当然,这可以通过将楔形创建为通用路径然后用图形填充它来完成(我的解决方案)。

我的第一种方法是楔形线条,因为出于某种原因我不想更改线条对象,而且我只想绘制线条对象而不再考虑它。 创建楔形笔划没问题(一些计算,然后创建一般路径) - 但我无法(轻松)填充它

显然,Graphics2D 的填充似乎只填充了它获得的形状 - 并且不处理笔划的填充(如果考虑一下,这种行为是有意义的)。

问题:有什么方法可以填充 Stroke 的形状(填充形状 - 更具体地说:GeneralPath - 以某种方式在绘制之前)?

【问题讨论】:

    标签: java swing user-interface stroke


    【解决方案1】:

    BasicStroke.public Shape createStrokedShape(Shape s) 可以帮助你通过 Line2D 那里?

    【讨论】:

      【解决方案2】:

      一旦你使用createStrokedShape(),请注意draw()“描边Shape的轮廓”,而fill()“填充Shape的内部。”

      【讨论】:

        【解决方案3】:
        import java.awt.*;
        
        public static Shape strokeToShape(Shape path, float strokeWidth)
            return new BasicStroke(strokeWidth).createStrokedShape(path);
        }
        

        你也可以指定BasicStrokecapjoin参数

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-11-09
          • 2014-10-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多