gpt4 book ai didi

JavaFX 矩形从左上角以外的点旋转

转载 作者:行者123 更新时间:2023-12-01 09:34:16 25 4
gpt4 key购买 nike

我已使用允许您设置枢轴的构造函数将 JavaFx Rotation 应用于矩形

new Rotate(45, 15, 15)

这会旋转矩形,但它会围绕其所在的 AnchorPane 的左上角 15,15 进行旋转。是否可以围绕一个类似于圆心的点旋转矩形,并且矩形围绕圆周旋转。与矩形一样,轮胎上的一 block 胎面围绕中心枢轴旋转。非常感谢。

最佳答案

这对我有用,但我不确定你在做什么。

package helloworld;

import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.paint.Color;
import javafx.scene.shape.Ellipse;
import javafx.scene.shape.Rectangle;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;

import java.time.Duration;

/**
* Created by Matt on 25/08/16.
*/
public class RotatingARectangle extends Application {

public static void main(String[] args) {
launch(args);
}

@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");

Group root = new Group();

Rectangle rect = new Rectangle(190, 395, 20, 5);
rect.setFill(Color.BLUE);
Rotate rot = new Rotate(0, 200, 200);
rect.getTransforms().add(rot);

Ellipse path = new Ellipse(200, 200, 200, 200);
path.setStroke(Color.RED);
path.setFill(null);

root.getChildren().add(rect);
root.getChildren().add(path);

Scene scene = new Scene(root, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();

Timeline line = new Timeline(30);

KeyFrame key1 = new KeyFrame(
new javafx.util.Duration(0),
new KeyValue(rot.angleProperty(), 0 )
);

KeyFrame key2 = new KeyFrame(
new javafx.util.Duration(1000),
new KeyValue(rot.angleProperty(), 360 )
);
line.getKeyFrames().addAll(key1, key2);

scene.addEventHandler(MouseEvent.MOUSE_CLICKED, evt->{
line.playFromStart();
});



}

}

我将轴心设置为椭圆的中心,然后使用时间轴将角度从 0 更改为 360。

关于JavaFX 矩形从左上角以外的点旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39139826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com