在javaFX中绘制简单的90degrees三角形

时间:2016-12-25 19:14:13

标签: java javafx javafx-8

我们开始学习javafx 3d并使用TriangleMesh。 我想绘制一个简单的右(90度)三角形。(0,0),(0,50),(50,0) 我的代码有什么问题吗?请

public class TT extends Application{



public void start(Stage primaryStage){
            TriangleMesh sqMesh=new TriangleMesh();

            sqMesh.getPoints().addAll(
                0.0f,0.0f,0.0f,  //1top
                0.0f,50.0f,0.0f,  //1left
                50.0f,0.0f,0.0f  //1right

            );

            sqMesh.getTexCoords().addAll(
                    0,0
                    );
            sqMesh.getFaces().addAll(
                0,0, 1,0, 2,0

            );

            Group group=new Group();
            MeshView sq=new MeshView();
            sq.setMesh(sqMesh);
            sq.setTranslateX(200);
            sq.setTranslateY(100);
            sq.setTranslateZ(0);
            group.getChildren().add(sq);
            StackPane root=new StackPane();
            Scene scene=new Scene(root,900,600);
            primaryStage.setScene(scene);
            primaryStage.show();
}

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

}

1 个答案:

答案 0 :(得分:1)

首先,你没有添加任何根StackPane。这应该可以解决你的问题。

root.getChildren().addAll(group);

但是,窗口大小相对于三角形非常大,所以我建议通过以下方式创建场景(不带大小参数)自动将窗口大小设置为窗口中的内容:

Scene scene=new Scene(root);

由于三角形的颜色与背景颜色非常相似,我还建议您将三角形的颜色更改为更重要的颜色,如:

sq.setMaterial(new PhongMaterial(Color.BLACK));