如何使用滑块实时旋转3d对象?

时间:2019-05-01 22:45:18

标签: javafx 3d

我试图使圆柱体绕选定的轴旋转,该轴由用户使用滑块设置,但是我无法让动画和滑块侦听器配合使用。

我尝试在滑块和普通的.getValue()上使用侦听器,但是在我当前的设置中,似乎都没有用。 在不使用固定值的滑块的情况下执行此操作似乎效果很好。

i.valueProperty().addListener //example of my slider listener (there are four: x, y, z and speed of rotation)
            ( 
                    new ChangeListener<Number>() 
                    { 

                   public void changed(ObservableValue <? extends Number >  
                             observable, Number oldValue, Number newValue) 
                   { 

                       x = (double) newValue; 
                   } 
               }); 
                    final Timeline rotationAnimation = new Timeline();
                    rotationAnimation.setCycleCount(Animation.INDEFINITE);

                    KeyValue keyValue = new KeyValue(rotate.angleProperty(),360);

                    Duration duration = Duration.seconds(speed);

                    EventHandler<ActionEvent> onFinished = new EventHandler<ActionEvent>() 
                        {
                            public void handle(ActionEvent t) 
                            {
                                x = (double) i.getValue();
                                y = (double) j.getValue();
                                z = (double) k.getValue();

                                speed = (double) 1/v.getValue();
                            }
                        };

                    KeyFrame keyFrame = new KeyFrame(duration, onFinished , keyValue);


                        rotationAnimation.getKeyFrames().add(keyFrame);

                        rotationAnimation.play();

I want my cylinder to rotate freely, at this point I just get blank window.

0 个答案:

没有答案