私はJavaで小さなペイントプログラムを書いていますが、ペンにこだわっています:
理論: マウスをドラッグするとき、P(draggedX|draggedY) と P2(mouseX|mouseY) の間の円を円で埋める必要があります。したがって、線/パス (?..) を作成し、その上にあるすべての点を計算する必要があります。
試したこと:
double m = 0;
int width = draggedX - mouseX;
int height = draggedY - mouseY;
if(draggedX - mouseX != 0){
    m = (draggedY - mouseY) / (draggedX - mouseX);
}
if(width > 0){
    for(int i = 0; i < width; i++) {
        double x = mouseX + i;
        double y = mouseY + (m * i);
        g.fillOval((int) x, (int) y, 5, 5);
    }
}
else if(width < 0){
    for(int i = -width; i > 0; i--) {
        double x = mouseX + i;
        double y = mouseY + (m * i);
        g.fillOval((int) x, (int) y, 5, 5);
    }
}
else{
    if(height > 0){
        for(int i = 0; i < height; i++){
            g.fillOval(mouseX, (int) i + mouseY, 5, 5);
        }
    }
    else if(height < 0){
        for(int i = -height; i > 0; i--){
            g.fillOval(mouseX, (int) i + mouseY, 5, 5);
        }
    }
}
正しく動作しませんでした。次のように、奇妙な線が飛び散り、円が描画されないことがありました。

他のアイデア、それを解決する方法はありますか? ありがとうございました!