我必须在JavaFX 8中可视化运动线。我正在使用eclipse,最新的Java更新(8更新72)和Windows 10 64位。我的家用电脑运行AMD HD 5870,我的笔记本和我的电脑在工作时都有Nvidia(GT760m和GTX 670)的graficcard。在我的程序中,有一个三角形网格和运动线(三角形网格,两个坐标相同,圆形约300个协调)。
这是我的问题:三角形网格有颜色。 movmentline具有相同的颜色。在Nvidia pcs上,运动线颜色与三角形网格的颜色完全相同。 AMD pc以黑色显示运动线。
以下是三角形网格的代码:
PhongMaterial material;
MeshView meshView;
TriangleMesh mesh;
material = new PhongMaterial(color);
float[] points = { (float) pointN.getX(), (float) pointN.getY(), (float) pointN.getZ(),
(float) pointEL.getX(), (float) pointEL.getY(), (float) pointEL.getZ(),
(float) pointER.getX(), (float) pointER.getY(), (float) pointER.getZ() };
int[] faces = { 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 2, 0 };
mesh = new TriangleMesh();
mesh.getPoints().setAll(points);
mesh.getTexCoords().addAll(0, 0);
mesh.getFaces().setAll(faces);
meshView = new MeshView(mesh);
meshView.setDrawMode(DrawMode.LINE);
meshView.setMaterial(material);
meshView.setCullFace(CullFace.BACK);
这是针对运动线的:
PhongMaterial material = new PhongMaterial(color);
float[] pointss = { points.get(i).x, points.get(i).y, -points.get(i).z,
points.get(i).x, points.get(i).y, -points.get(i).z,
points.get(i+1).x, points.get(i+1).y, -points.get(i+1).z
};
int[] faces = { 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 2, 0 };
TriangleMesh mesh = new TriangleMesh();
mesh.getPoints().setAll(pointss);
mesh.getTexCoords().addAll(0, 0);
mesh.getFaces().setAll(faces);
MeshView meshView = new MeshView(mesh);
meshView.setDrawMode(DrawMode.LINE);
meshView.setMaterial(material);
meshView.setCullFace(CullFace.BACK);
在我的opoinin中它是相同的代码结构。操作系统,驱动程序,Java和Eclipse在所有系统上都是最新的。
有人有想法解决这个问题吗?
答案 0 :(得分:0)
我正在使用下面的内容来设置TriangleMesh的线框颜色 - (它的Scala不是Java)
val mesh: TriangleMesh = new TriangleMesh
mesh.getPoints.setAll(pointsCube: _*)
mesh.getTexCoords.setAll(0, 0)
mesh.getFaces.setAll(facesCube: _*)
val blackMaterial: PhongMaterial = new PhongMaterial
blackMaterial.setDiffuseColor(Color.BLACK)
val meshView = new MeshView(mesh)
meshView.drawModeProperty.setValue(DrawMode.LINE)
meshView.setMaterial(blackMaterial)