189 8069 5689

包含java3d炫酷代码的词条

java 如何开发3d可视化

使用之前

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网络空间、营销软件、网站建设、罗田网站维护、网站推广。

在开始使用 ThingJS 之前,需要先了解JavaScript,我们假设您已经掌握JS。

创建项目

创建项目之前需登录ThingJS账号,如果您尚未登录账号或页面出现“登录已过期,请重新登录!”的提示,为保证项目的正确保存及运行,请您在账号登录之后再创建项目。您可通过以下三种方式创建项目:

选择菜单区域的“文件 - 新建项目”选项

点击工具栏“新建”图标,图标如右图所示:

请点击输入图片描述

请点击输入图片描述

使用快捷键“Ctrl+P”

编辑项目

在线开发为用户提供了相应的快捷代码和官方示例,如果你正在用 ThingJS在线开发页面,可以通过以下两种方式来编辑项目:

点击在线开发页面菜单区域的快捷代码选项中的子项,编辑区将自动插入相应代码

请点击输入图片描述

选择在线开发官方示例中的其中任意一个示例,点击相应示例,编辑区将显示相应代码

后续操作详见 在线开发 - 应用开发 - 在线开发网页链接

保存项目

可通过以下四种方式保存项目:

选择菜单区域的“文件 - 保存”选项

点击工具栏“保存”图标,图标如右图所示:

请点击输入图片描述

请点击输入图片描述

使用快捷键“Ctrl+S”

运行项目

在线开发环境提供了以下几种方式运行项目:

使用快捷方式“Ctrl+R/Enter”或点击工具栏中的“运行”图标,3d容器区域将运行编辑器相应的代码。图标如右图所示:

请点击输入图片描述

请点击输入图片描述

选择菜单区域的“工具 - 设置”选型,出现的设置面板,点击开启“自动保存执行”

请点击输入图片描述

java环境下,如何实现3D图形的自动旋转?

程序实现思路: 在javafx中Node对象有一个effect属性,可以用于实现各种特效。PerspectiveTransform特效可以使Node对象实现透视变换。因此我们可以通过计算透视变换中每个点的位置来实现3D翻转特效。

实现步骤: 1、定义FlipView对象。包含以下属性:

复制代码 代码如下:

//正面视图

public Node frontNode;

//反面视图

public Node backNode;

//是否翻转

boolean flipped = false;

//翻转角度

DoubleProperty time = new SimpleDoubleProperty(Math.PI / 2);

//正面翻转特效

PerspectiveTransform frontEffect = new PerspectiveTransform();

//反面翻转特效

PerspectiveTransform backEffect = new PerspectiveTransform();

create方法返回需要显示的内容:

复制代码 代码如下:

private void create() {

time.addListener(new ChangeListener() {

@Override

public void changed(ObservableValue? extends Number arg0,

Number arg1, Number arg2) {

setPT(frontEffect, time.get());

setPT(backEffect, time.get());

}

});

anim.getKeyFrames().addAll(frame1, frame2);

backNode.visibleProperty().bind(

Bindings.when(time.lessThan(0)).then(true).otherwise(false));

frontNode.visibleProperty().bind(

Bindings.when(time.lessThan(0)).then(false).otherwise(true));

setPT(frontEffect, time.get());

setPT(backEffect, time.get());

frontNode.setEffect(frontEffect);

backNode.setEffect(backEffect);

getChildren().addAll(backNode, frontNode);

}

以上代码需要注意的是: 随着time值的变化frontEffect和backEffect的值也会随着变换。 2、PerspectiveTransform特效的实现使用了Math.sin()和Math.cos()方法模拟3D角度变换。 具体实现如下:

复制代码 代码如下:

private void setPT(PerspectiveTransform pt, double t) {

double width = 200;

double height = 200;

double radius = width / 2;

double back = height / 10;

pt.setUlx(radius - Math.sin(t) * radius);

pt.setUly(0 - Math.cos(t) * back);

pt.setUrx(radius + Math.sin(t) * radius);

pt.setUry(0 + Math.cos(t) * back);

pt.setLrx(radius + Math.sin(t) * radius);

pt.setLry(height - Math.cos(t) * back);

pt.setLlx(radius - Math.sin(t) * radius);

pt.setLly(height + Math.cos(t) * back);

}

3、角度变换在1秒的时间内从3.14/2变换到-3.14/2。

复制代码 代码如下:

KeyFrame frame1 = new KeyFrame(Duration.ZERO, new KeyValue(time,

Math.PI / 2, Interpolator.LINEAR));

KeyFrame frame2 = new KeyFrame(Duration.seconds(1),

new EventHandler() {

@Override

public void handle(ActionEvent event) {

flipped = !flipped;

}

}, new KeyValue(time, -Math.PI / 2, Interpolator.LINEAR));

4、FlipView对象的创建:通过构造函数可以很方便的创建FlipView对象.

复制代码 代码如下:

ImageView image1 = new ImageView(new Image(getClass()

.getResourceAsStream("lion1.png")));

ImageView image2 = new ImageView(new Image(getClass()

.getResourceAsStream("lion2.png")));

FlipView flip = new FlipView(image1, image2);

java怎么画出 3D 效果的图像?

可参考 孙博文 的一本书 分形算法与程序设计: Java实现 里面有3D的内容

貌似要下载 JAVA3D 的msi安装包 解压后得到jar包 JAVA 3D已经被淘汰 可能有点难找

用Java3D编程就行了 你先把那书上关于3D的代码 稍微看一下 编程的思路也就是 先建立一个场景(有光) 然后空间描点 画线 着色 之类的 可以参考具体的Java 3D 的书 貌似大多是英文的

编程也可以参考官方API文档


本文名称:包含java3d炫酷代码的词条
文章网址:http://jkwzsj.com/article/hedoji.html

其他资讯