0

我正在尝试通过存储需要绘制的线条来制作填充桶工具。我的那部分工作得很好,但是现在当我尝试缩放它时,我遇到了一个问题,即我有一些区域没有画在某些线条之间。有没有办法解决这个问题,或者有更好的方法来做到这一点?

此代码将演示我遇到的问题。第一个正方形没有缩放并且看起来不错,但是当我缩放第二个框时,一些线之间有空间。

import java.awt.*;
import javax.swing.*;


public class LineWidth extends JPanel{
    public static void main(String[] args) {
        LineWidth l = new LineWidth();
        l.setPreferredSize(new Dimension(500, 500));
        l.setBackground(Color.CYAN);

        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setContentPane(l);
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        Graphics2D g2 = (Graphics2D) g.create();

        g2.setColor(Color.BLACK);

        for(int i=10; i<110; i++) {
            g2.drawLine(10, i, 190, i);
        }

        Graphics2D g22 = (Graphics2D) g.create();
        g22.setColor(Color.BLACK);
        g22.scale(2.1, 2.1);
        for(int i=120; i<220; i++) {
            g22.drawLine(10, i, 190, i);
        }
    }
}

对于这个例子,绘制一个矩形而不是线条会容易得多,但是对于我的填充桶,我看不到这样做的方法。

谢谢。

4

1 回答 1

0

我最终将我的线条绘制到 a上,而不是BufferedImage缩放它BufferedImage而不是我的线条。这可能不是最有效的方法,但它工作得很好,而且运行得足够快。感谢您对此的建议。

于 2013-03-10T08:08:48.960 回答