0

Craig Reynolds Boids の Java 実装を作成しました。最近、各オブジェクトを .png 画像で表すように更新しました。それ以来、画像の表示の問題が発生しています。

問題を解決する最善の方法は何ですか?

  • Polygon を使用してみましたが、座標の 1 つが負の場合、三角形が正しく表示されません。

ボイド

メインクラス:

public void paint(final GraphicsContext g) {
    new AnimationTimer() {
        @Override
        public void handle(long now) {
            flock.updateBoidsPostion();
            g.clearRect(0, 0, width, height);
            flock.drawBoids(g);
        }
    }.start();
}

@Override
public void start(Stage primaryStage) throws Exception {
    primaryStage.setTitle("Boids Flocking Algorithm");
    Group root = new Group();
    Canvas canvas = new Canvas(width, height);
    GraphicsContext gc = canvas.getGraphicsContext2D();

    root.getChildren().add(canvas);
    primaryStage.setScene(new Scene(root));
    primaryStage.show();

    paint(gc);

}

群れ:

/**
 * Paint each boid comprising the flock the canvas.
 * @param g
 */
public void drawBoids(GraphicsContext g) {
    for(Boid aBoid : boids) {
        aBoid.draw(g);
    }
}

ボイド:

public void draw(GraphicsContext g) {
    //coordinates for the tip of the boid
    int x = (int)this.position.xPos;
    int y = (int)this.position.yPos;

    //Calculate a angle representing the direction of travel. 
    Rotate r = new Rotate(angle, x, y);
    g.setTransform(r.getMxx(), r.getMyx(), r.getMxy(), r.getMyy(), r.getTx(), r.getTy());

    g.drawImage(image, x, y);   
}
4

1 に答える 1