java - JavaFx 等效于节点的 Graphics context.rotate()
问题描述
如果我在画布中绘图,我可以旋转图形上下文的坐标系,而无需旋转已在相应画布中绘制的任何内容,与平移相同。
小组中是否有类似的可能?如果我只是旋转并翻译它的孩子,我不会得到正确的效果,因为翻译将自己定位在未旋转的组系统上。
如果没有,是否有类似 3d 画布的功能?
解决方案
正如 Slaw 指出的那样,我正在寻找的是包 javafx.scene.transform 中的类。
下面是一个例子:假设我想要一条从 (200, 200) 开始的线,在距离 x 轴 60 度的方向上长度为 200。如果没有 transform 包,这也不难做到,但它只是一个简单的例子。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Line;
import javafx.scene.transform.Affine;
import javafx.stage.Stage;
public class Example extends Application {
public static void main(String[] args) {
launch(args);
}
public void start(Stage stage) throws Exception {
Group group = new Group();
Scene scene = new Scene(group, 400, 400);
stage.setScene(scene);
// Does not work as intended
Line line1 = new Line(0,0, 200, 0);
line1.setTranslateX(200);
line1.setTranslateY(200);
line1.setRotate(60);
// Does work as intended.
Line line2 = new Line(0, 0, 200, 0);
Affine affine = new Affine();
affine.appendTranslation(200, 200);
affine.appendRotation(60);
line2.getTransforms().add(affine);
group.getChildren().addAll(line1, line2);
stage.show();
}
}
推荐阅读
- firebase - Firestore 安全规则:使用 Set.hasAny() 时出现空值错误
- mysql - 如何进行多值查询?
- python - 如何在 Tensorflow 数据集中扩充数据?
- javascript - 我怎样才能确保当我按下一个图标时,另一个页面会出现在 Reactjs 中
- qt - 根据Delegate中的Image计算TableView高度
- python - 使用 Pandas 删除具有特殊字符的行
- java - 邮递员获得 401 未经授权...使用弹簧靴
- python - Lambda 和 Textract:start_document_text_detection 未知参数“OutputConfig”
- r - 如何获取分组变量和函数(可能是 group_nest)?
- php - WordPress在发布之前检查帖子标题是否存在并重定向到最旧的帖子而不是创建新帖子