Animation Javafx在一侧缩短一条线

Animation Javafx在一侧缩短一条线,animation,javafx,javafx-8,line,Animation,Javafx,Javafx 8,Line,我试着在javafx上用动画将一条线缩短到一边。我希望起点保持在原地,终点离起点更近。我找不到合适的过渡。所以我用了这段代码: PathTransition pt = new PathTransition(Duration.millis(1000), new Line(x1*3/4, y, x1, y), line); pt.play(); ScaleTransition stBig = new ScaleTransition();

我试着在javafx上用动画将一条线缩短到一边。我希望起点保持在原地,终点离起点更近。我找不到合适的过渡。所以我用了这段代码:

        PathTransition pt = new PathTransition(Duration.millis(1000), new Line(x1*3/4, y, x1, y), line);
        pt.play();
        ScaleTransition stBig = new ScaleTransition();
        stBig.setNode(line);
        stBig.setFromX(2);
        stBig.setToX(0.25);
        stBig.setDuration(new Duration(1000));
        stBig.play();

但它不起作用。我可以在一种类型的转换中完成吗?或者有什么解决方法吗?

由于行是水平的,您只需要更改
endX
属性,您可以使用一个简单的:

即使您需要同时设置
endX
endY
属性的动画,也不会复杂得多:

    Line line = new Line(100, 100, 300, 300);

    Timeline animation = new Timeline(
        new KeyFrame(Duration.seconds(1), 
                new KeyValue(line.endXProperty(), 100),
                new KeyValue(line.endYProperty(), 100))    
    );

作为一个动画,它确实工作得很好,但是有可能通过它来检测碰撞吗?我环顾四周,但找不到一个方法来做这件事,我自己的尝试也不起作用。
    Line line = new Line(100, 100, 300, 300);

    Timeline animation = new Timeline(
        new KeyFrame(Duration.seconds(1), 
                new KeyValue(line.endXProperty(), 100),
                new KeyValue(line.endYProperty(), 100))    
    );