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);
}