小编Cry*_*nda的帖子

如何使用路径过渡方法使节点绕圆旋转?

我正在尝试重新创建玻尔原子模型,此时我已经设法使电子相对于轨道中的电子总数具有足够的位置,但现在我正在努力使它们旋转围绕所述轨道。 我遇到的问题是路径过渡使它们从所述位置朝向轨道中心,而不是使它们围绕轨道旋转。

好吧,我有这个节点:

 @FXML
private Circle orbital;
@FXML
private Circle Electron;
@FXML
private Circle Electron2;
@FXML
private Circle Electron3;
Run Code Online (Sandbox Code Playgroud)

这是让它们旋转的方法:

  private void animate(Circle electron, Circle orbital, double angulo, int duration) {
    Path path = new Path();
    double anguloRadianes = Math.toRadians(angulo);//pass the angle to radians
    double X = orbital.getCenterX() + orbital.getRadius() * Math.cos(anguloRadianes);//calculate the x coordinate of the position of the electron
    double Y = orbital.getCenterY() + orbital.getRadius() * Math.sin(anguloRadianes);//calculate the y coordinate of the position of the electron
    path.getElements().add(new javafx.scene.shape.MoveTo(X, …
Run Code Online (Sandbox Code Playgroud)

java animation geometry javafx

4
推荐指数
1
解决办法
90
查看次数

有没有办法在多个节点上检测同一事件?

我正在研究一种元素周期表,有一个事件最终,当您将鼠标悬停时,会放大一点所述元素并显示更多信息,但事实是它并没有真正完成这项工作很好。可以说是跟踪,因为如果鼠标移动得有点快,或者很快离开位于边缘的面板,它就不会检测到鼠标的退出。这是鼠标进入或退出时应执行的动画代码:

public void onScale(int i){
    double currentScaleX = Panes[i].getScaleX();
    double currentScaleY = Panes[i].getScaleY();//stores the current scale
    
    if (currentScaleX == 1.0 && currentScaleY == 1.0) {//verify that said scale is the original (equal to 1)
      

        TranslateTransition translate = new TranslateTransition(Duration.millis(50), Symbol[i]);
        translate.setToY(-4);
        translate.playFromStart();//move the symbol up a little

        TranslateTransition tratn = new TranslateTransition(Duration.millis(50), AtomicNumber[i]);
        tratn.setToY(-2);
        tratn.playFromStart();

        TranslateTransition tratm = new TranslateTransition(Duration.millis(50), AtomicMass[i]);
        tratm.setToY(-2);
        tratm.playFromStart();

        TranslateTransition trnm = new TranslateTransition(Duration.millis(50), Name[i]);
        trnm.setToY(3);
        trnm.playFromStart();
        
        AtomicMass[i].setVisible(true);
        OxidationNumber[i].setVisible(true);//makes the atomic mass and oxidation number visible …
Run Code Online (Sandbox Code Playgroud)

java javafx fxml

1
推荐指数
1
解决办法
106
查看次数

标签 统计

java ×2

javafx ×2

animation ×1

fxml ×1

geometry ×1