我用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);
}
}
}
它没有正确工作。有时奇怪的线条会溅起,圆圈没有画出来,像这样:
还有其他想法,如何解决?谢谢!