我们开始学习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);
}
}
答案 0 :(得分:1)
首先,你没有添加任何根StackPane。这应该可以解决你的问题。
root.getChildren().addAll(group);
但是,窗口大小相对于三角形非常大,所以我建议通过以下方式创建场景(不带大小参数)自动将窗口大小设置为窗口中的内容:
Scene scene=new Scene(root);
由于三角形的颜色与背景颜色非常相似,我还建议您将三角形的颜色更改为更重要的颜色,如:
sq.setMaterial(new PhongMaterial(Color.BLACK));