【发布时间】:2019-07-01 17:16:56
【问题描述】:
我试图在 java 中创建一个斜坡。我可以使用 DrawLine 函数,它会创建一个完美的函数,但我不想使用它,而是为它创建我自己的函数。问题是它在点之间有间隙。
import java.applet.Applet;
import java.awt.Graphics;
public class slope extends Applet{
public void drawLine(int x1, int y1, int x2, int y2, Graphics g) {
double m = (y2 - y1) / (double)(x2-x1);
double y = y1;
for (int x =x1; x < x2; x++) {
drawPoint(x,(int)y,g);
y +=m;
}
}
public void paint(Graphics g) {
drawLine(20, 10, 300, 700, g); //has spaces between the dots
g.drawLine(20, 10, 300, 700); //this is perfect
}
private void drawPoint(int x, int y, Graphics g) {
g.drawLine(x, y, x, y);
}
}
【问题讨论】:
-
根据角度,您应该迭代
x或y。 -
它没有“点之间的间隙”。这根本不是一条线。您绘制了各个点,为什么您期望它们确实是连接的?
-
@f1sh 他在问如何做到没有间隙。所有的线实际上都是点,只是没有间隙。
-
好吧,如果
m比 1 大,那么你显然会有差距,那么你需要越过y并将1 / m添加到x。如果您注意到您还需要处理负值,则加分。
标签: java