首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >相当于节点的图形context.rotate()的JavaFx

相当于节点的图形context.rotate()的JavaFx
EN

Stack Overflow用户
提问于 2019-04-13 19:01:01
回答 1查看 180关注 0票数 0

如果我在画布中绘图,我可以旋转graphicscontext的坐标系,而不需要旋转任何已经在相应画布中绘制的内容,就像翻译一样。

在一个组中有没有类似的可能性?如果我只是旋转和平移它的孩子,我得不到正确的效果,因为平移在组的未旋转系统上定位。

如果没有,是否有类似3d画布的功能?

EN

回答 1

Stack Overflow用户

发布于 2019-04-15 02:45:50

正如Slaw所指出的,我正在寻找的是javafx.scene.transform包中的类。

下面是一个示例:假设我想要一条从( 200,200)开始的直线,其长度为200,方向与x轴成60度。如果没有转换包,这也不是很难做到,但它只是一个简单的例子。

代码语言:javascript
复制
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();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55664723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档