2

新しいデータが追加されると右側に成長するアニメーション チャートを作成しようとしています。変数をプロットするためのパスを使用しています (JavaFX LineChart は遅すぎるようです)。パス要素のセットに新しい LineTo を追加して、500 ミリ秒ごとに新しい変数をプロットしようとしています。問題を次のサンプル コードに減らしました。JavaFX の専門家が、これが時間の経過とともに右下がりの線にならない理由を教えてくれませんか?:

var newX = 10;
var lineElements: PathElement[];


Timeline {
   repeatCount: Timeline.INDEFINITE
   keyFrames: [
      KeyFrame {
         time: 500ms
         canSkip: false
         action: function () {
            newX = newX + 10;
            insert [LineTo {x: newX, y: 100}] into lineElements;
         }
      }
   ]
}.play();

Stage {
   title: "Application title"
   scene: Scene {
      width: 250
      height: 80
      content: [
         Path {
            fill: null
            stroke: Color.RED
            strokeWidth: 2
            elements: bind lineElements = [
               MoveTo {
                  x: 0
                  y: 100
               }
            ]
         }
      ]
   }
}

本当にありがとう。

4

1 に答える 1

2

あなたは2つのことを間違っていると思います:

初期化の順序は好きではありませんが、それは単なるスタイルの問題かもしれません

また、Y を大きくするか、PathElements を互いに相対的にする必要があります。

var lineElements: PathElement[] = [MoveTo {
     x: 0
     y: 100
}];
Timeline {
   repeatCount: Timeline.INDEFINITE
   keyFrames: [
      KeyFrame {
         time: 500ms
         canSkip: false
         action: function () {
            insert LineTo {x: 10 y: 10 absolute: false} into lineElements;
         }
      }
   ]
}.play();

Stage {
   scene: Scene {
      content: [
         Path {
            fill: null
            stroke: Color.RED
            strokeWidth: 2
            elements: bind lineElements
         }
      ]
   }
}
于 2010-02-15T17:15:04.647 に答える