java 如何开发3d可视化
发布网友
发布时间:2022-04-20 13:55
我来回答
共2个回答
热心网友
时间:2023-07-06 19:09
使用之前
在开始使用 ThingJS 之前,需要先了解JavaScript,我们假设您已经掌握JS。
创建项目
创建项目之前需登录ThingJS账号,如果您尚未登录账号或页面出现“登录已过期,请重新登录!”的提示,为保证项目的正确保存及运行,请您在账号登录之后再创建项目。您可通过以下三种方式创建项目:
选择菜单区域的“文件 - 新建项目”选项
点击工具栏“新建”图标,图标如右图所示:
请点击输入图片描述
请点击输入图片描述
使用快捷键“Ctrl+P”
编辑项目
在线开发为用户提供了相应的快捷代码和官方示例,如果你正在用 ThingJS在线开发页面,可以通过以下两种方式来编辑项目:
点击在线开发页面菜单区域的快捷代码选项中的子项,编辑区将自动插入相应代码
请点击输入图片描述
选择在线开发官方示例中的其中任意一个示例,点击相应示例,编辑区将显示相应代码
后续操作详见 在线开发 - 应用开发 - 在线开发网页链接
保存项目
可通过以下四种方式保存项目:
选择菜单区域的“文件 - 保存”选项
点击工具栏“保存”图标,图标如右图所示:
请点击输入图片描述
请点击输入图片描述
使用快捷键“Ctrl+S”
运行项目
在线开发环境提供了以下几种方式运行项目:
使用快捷方式“Ctrl+R/Enter”或点击工具栏中的“运行”图标,3d容器区域将运行编辑器相应的代码。图标如右图所示:
请点击输入图片描述
请点击输入图片描述
选择菜单区域的“工具 - 设置”选型,出现的设置面板,点击开启“自动保存执行”
请点击输入图片描述
热心网友
时间:2023-07-06 19:09
Java 8以上版本, 可以尝试JavaFX 3D 来实现
效果图
下面是模仿的Oracal 的Demo写的一个3D代码
import javafx.application.Application;
import javafx.application.ConditionalFeature;
import javafx.application.Platform;
import javafx.geometry.Point3D;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.SceneAntialiasing;
import javafx.scene.SubScene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Slider;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Cylinder;
import javafx.stage.Stage;
public class A07_SubScene extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
if(!Platform.isSupported(ConditionalFeature.SCENE3D)) {
Alert alert=new Alert(AlertType.ERROR,"不支持JavaFX SCENE3D!~");
alert.showAndWait();
Platform.exit();
}
Group root=new Group();
Scene scene = new Scene(root,500,500,Color.ALICEBLUE);
HBox hbox=new HBox();
hbox.setLayoutX(60);
hbox.setLayoutY(70);
//创建圆柱体
Cylinder cl=new Cylinder(90,180);
PhongMaterial phongMaterial = new PhongMaterial(Color.color(1.0, 0.7, 0.8));
cl.setMaterial(phongMaterial);
SubScene sub=getSub(cl);
hbox.getChildren().add(sub);
Slider slider=new Slider(0, 360, 0);
slider.setLayoutX(170);
slider.setLayoutY(360);
cl.rotateProperty().bind(slider.valueProperty());
root.getChildren().addAll(hbox,slider);
primaryStage.setScene(scene);
primaryStage.setTitle("SubScene");
primaryStage.show();
}
private SubScene getSub(Node node) {
Group root=new Group();
node.setRotationAxis(new Point3D(2, 1, 0));
node.setTranslateX(180);
node.setTranslateY(150);
root.getChildren().add(node);
SubScene sub=new SubScene(root, 360, 400, true, SceneAntialiasing.BALANCED);
sub.setCamera(new PerspectiveCamera());
return sub;
}
}