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

そうです。前のポイントと現在のポイントの間を補間する必要があります。つまり、2 つのポイントの間に線を引きます。また、これを行うときは、より太いストロークを設定することをお勧めします

于 2012-04-16T19:11:50.343 に答える
1

離れた点の間に線を引くか、冒険好きなら曲線を描いてみてください。

于 2012-04-16T19:13:15.130 に答える