1

我的目标是在拖动鼠标时画点。问题是,当鼠标移动得非常快时,点之间的距离会变得很大,而不是所需的距离很小,这将无法识别。

缩短的代码是:

public void update(Graphics g){
    paint(g);
}

public void paint(Graphics g){
        for(i = 0; i <= height; i++){
            for(j = 0; j <= width; j++){
                if(virWorld[i][j] == 1) bufferGraphics.fillRect(i,j,1,1);
            }
        }
        g.drawImage(offscreen,0,0,this);
 }

public void mouseDragged(MouseEvent evt){
    curX = evt.getX();
    curY = evt.getY();
    virWorld[curX][curY] = 1;
}


public void run(){
    while(true){
        repaint();
        try{
            Thread.wait(10);    
        }
        catch(Exception exception){
            System.out.println(exception);
        }
    }
}

谢谢你的帮助,罗宾

4

2 回答 2

2

确实如此。您需要在前一点和当前点之间进行插值,即在两点之间画一条线。此外,您可能希望在执行此操作时设置更粗的 Stroke

于 2012-04-16T19:11:50.343 回答
1

在遥远的点之间画一条线,或者如果您喜欢冒险,可以尝试一条曲线。

于 2012-04-16T19:13:15.130 回答