在JavaFX中导入STL文件

在JavaFX中导入STL文件,java,javafx-8,javafx-3d,stl-format,Java,Javafx 8,Javafx 3d,Stl Format,我的问题是,我正在尝试将三维模型从STL文件导入JavaFX应用程序。我遵循了这个链接中的代码,它只适用于这里提到的jewel文件,但我尝试了其他STL文件,它不起作用 我不明白为什么它不能处理其他文件。有人能解释一下吗? 任何帮助,请尽快 由于您已经从这里使用了STL导入器,因此在将模型导入JavaFX应用程序之前,您可以在同一个web中找到一个预览模型的工具 如果无法使用此浏览器导入,则问题可能与文件中的STL格式无效有关 如果它们是导入的,那么问题可能出在您的应用程序中。将调用嵌入到try

我的问题是,我正在尝试将三维模型从STL文件导入JavaFX应用程序。我遵循了这个链接中的代码,它只适用于这里提到的jewel文件,但我尝试了其他STL文件,它不起作用

我不明白为什么它不能处理其他文件。有人能解释一下吗?
任何帮助,请尽快

由于您已经从这里使用了STL导入器,因此在将模型导入JavaFX应用程序之前,您可以在同一个web中找到一个预览模型的工具

如果无法使用此浏览器导入,则问题可能与文件中的STL格式无效有关

如果它们是导入的,那么问题可能出在您的应用程序中。将调用嵌入到try-catch中,并发布您可能遇到的异常

StlMeshImporter stlImporter = new StlMeshImporter(); 

try {
    stlImporter.read(this.getClass().getResource("<STLfile>.stl"));
}
catch (ImportException e) {
    e.printStackTrace();
    return;
}
由于模型对于我们的场景可能太小或太大(与我们使用的摄影机和视点相关),我们应该打印模型的边界框,然后相应地放大或缩小它:

System.out.println("mesh: "+mesh.getBoundsInLocal().toString());
mesh.setScaleX(1d);
mesh.setScaleY(1d);
mesh.setScaleZ(1d);
或者我们可以更改相机参数:

double max = Math.max(mesh.getBoundsInLocal().getWidth(),
              Math.max(mesh.getBoundsInLocal().getHeight(),
                       mesh.getBoundsInLocal().getDepth()));
camera.setTranslateZ(-3*max);

由于您已经从这里使用了STL导入器,因此在将模型导入JavaFX应用程序之前,您可以在同一个web中找到一个用于预览模型的导入器

如果无法使用此浏览器导入,则问题可能与文件中的STL格式无效有关

如果它们是导入的,那么问题可能出在您的应用程序中。将调用嵌入到try-catch中,并发布您可能遇到的异常

StlMeshImporter stlImporter = new StlMeshImporter(); 

try {
    stlImporter.read(this.getClass().getResource("<STLfile>.stl"));
}
catch (ImportException e) {
    e.printStackTrace();
    return;
}
由于模型对于我们的场景可能太小或太大(与我们使用的摄影机和视点相关),我们应该打印模型的边界框,然后相应地放大或缩小它:

System.out.println("mesh: "+mesh.getBoundsInLocal().toString());
mesh.setScaleX(1d);
mesh.setScaleY(1d);
mesh.setScaleZ(1d);
或者我们可以更改相机参数:

double max = Math.max(mesh.getBoundsInLocal().getWidth(),
              Math.max(mesh.getBoundsInLocal().getHeight(),
                       mesh.getBoundsInLocal().getDepth()));
camera.setTranslateZ(-3*max);

我已经在浏览器中预览过了,文件没有问题。我真的不知道应用程序中的问题出在哪里,try-catch没有帮助,因为导入已通过..我已经在浏览器中预览了它们,文件没有问题。我不知道应用程序中的问题在哪里,因为catch传入,TIGET catch没有帮助。C++标准模板库引用STL标记。这里的IHOO STL与TAG无关。STL标签是C++标准模板库引用的。这里的IMHO STL与此标签无关。