0
我沒有基礎代碼或示例從此開始....只是在我腦海中拋出這個想法。JavaFX將沿着角度路徑的對象移動到一定的值
所以我會有一個像滑塊...在30度角,並需要一個酒吧或對象沿該路徑移動到一定的比例或值。
從我有限的知識中,我認爲我需要使用插補器....但我甚至從哪裏開始呢?
我的目標是給這個方法一個值,比如介於1和100之間。然後,對象或條會動畫到路徑上的那個位置。像條形圖,但用作量表。
我沒有基礎代碼或示例從此開始....只是在我腦海中拋出這個想法。JavaFX將沿着角度路徑的對象移動到一定的值
所以我會有一個像滑塊...在30度角,並需要一個酒吧或對象沿該路徑移動到一定的比例或值。
從我有限的知識中,我認爲我需要使用插補器....但我甚至從哪裏開始呢?
我的目標是給這個方法一個值,比如介於1和100之間。然後,對象或條會動畫到路徑上的那個位置。像條形圖,但用作量表。
只是一個更新....
我結束了去使用一些舊的數學更手動的路線。 :) 考慮到我知道酒吧需要移動多少,以及需要移動的角度。 Sin和Cos是我的朋友。
似乎很快反應也很順利!
double oldx = RBar.getX();
double oldy = RBar.getY();
double moveval = oldacc + averageACC;
double angle = -30 * Math.PI/180;
double newx = oldx - moveval * Math.sin(angle);
double newy = oldy - moveval * Math.cos(angle);
double movex = newx + oldx;
double movey = newy + oldy;
Platform.runLater(new Runnable() {
@Override
public void run() {
final Timeline timeline = new Timeline();
timeline.setCycleCount(1);
timeline.setAutoReverse(true);
final KeyValue targetkvx = new KeyValue(RBar.translateXProperty(), movex);
final KeyValue targetkvy = new KeyValue(RBar.translateYProperty(), movey);
final KeyFrame kf = new KeyFrame(Duration.millis(100), targetkvx, targetkvy);
timeline.getKeyFrames().add(kf);
timeline.play();
}
});
oldacc = averageACC;
感謝您讓我走上正確的道路!
也許這樣? https://docs.oracle.com/javafx/2/animations/basics.htm或https://docs.oracle.com/javase/8/javafx/api/ – NwDev
只需將該值表示爲DoubleProperty。將對象的x和y座標綁定到基於該值的值:例如,對於30度線,「x = value * Math.cos(Math.toRadians(30))」,因此您可以執行「對象」。 layoutXProperty()。bind(value.multiply(0.866025));'等等。如果卡住了,試試它併發佈一個特定的問題。 –
太棒了!經過過去24年的大量研究(我有點迷戀) - 嘗試了一些基本的東西,並圍繞我調整,我認爲我正在學習這個特定問題的正確途徑。 James_D你真棒。完美的指引,讓我開始或至少,給我想要變出的東西的定義。獎勵! – Redracer68