私は、すべての行に200メートルの間隔距離を持つ単純な階段線を作りたいと思います。コードで見ることができるように、画面の高さ(y1_world)は2000メートル、画面の幅(x1_world)は1125です。このコードは階段にはなく直線の傾斜した位置でしか機能しません。Javaでdrawlineを使用して階段線を描くにはどうすればよいですか?
誰かが私にこの問題について考えてもらえますか?
public void paint(Graphics g)
{
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setBackground(Color.white);
int x0_pixel = 0;
int y0_pixel = 0;
int x1_pixel = getWidth();
int y1_pixel = getHeight();
int x0_world = 0;
int y0_world = 0;
int x1_world = 2000; // meters
int y1_world = 1125; // meters
double x_ratio = (double) x1_pixel/x1_world;
double y_ratio = (double) y1_pixel/y1_world;
double len = x1_world; // meters
double interval = 200; // meters
int x_world = 0;
int y_world = 0;
while (((y_world += interval) <= y1_world) && ((x_world +=interval) <= x1_world))
{
int x_pixel = convertToPixelX(x_world, x_ratio);
int y_pixel = convertToPixelY(y_world, y_ratio);
g2d.setColor(Color.BLUE);
g2d.drawLine(x_world, y_world, x_pixel, y_pixel);
}
Toolkit.getDefaultToolkit().sync();
g2d.dispose();
}
private static int convertToPixelY(int y_world, double y_ratio)
{
return (int) (y_world * y_ratio);
}
private static int convertToPixelX(int x_world, double ratio)
{
return (int) (x_world * ratio);
}
このヒントのためのtnx ..私はすでにそれを持って..!それは今働く.. – sack
良いヒントのための+15 .. ;-) – sack