教你在Java中实现3d编程简介

Java迭代分形——3D图形 利用迭代函数和数学思维绘制图形及3D立体图形。 阅读详情
 1. 关于Java3D

1.1 Java3D简介

Java3D API是Sun定义的用于实现3D显示的接口。3D技术是底层的显示技术,Java3D提供了基于Java的上层接口。Java3D把OpenGL和DirectX这些底层技术包装在Java接口中。这种全新的设计使3
D技术变得不再繁琐并且可以加入到J2SE、J2EE的整套架构,这些特性保证了Java3D技术强大的扩展性。

JAVA3D建立在JAVA2(JAVA1.2)基础之上,JAVA语言的简单性使JAVA3D的推广有了可能。它实现了以下三维显示能够用到的功能:

生成简单或复杂的形体(也可以调用现有的三维形体)
使形体具有颜色、透明效果、贴图。
在三维环境中生成灯光、移动灯光。
具有行为的处理判断能力(键盘、鼠标、定时等)。
生成雾、背景、声音。
使形体变形、移动、生成三维动画。
编写非常复杂的应用程序,用于各种领域如VR(虚拟现实)。
J2SE 在其标准开发包中并不提供Java3D的API,Java3D是一个独立的可选组件,可以单独下载。Java3D现在(截止到2003年5月)提供的正式版本是1.3.0,可以在 http://java.sun.com/products/java-media/3D/download.html 下载该开发工具包。

Java3D 1.3有7个不同的可下载版本:

Java3D for Windows(DirectX version)SDK for JDK(include Runtime);
Java3D for Windows(OpenGL version)SDK for JDK(include Runtime);
Java3D for Solaris/SPARC Runtime for JDK(include Runtime);
Java3D for Windows(DirectX version)Runtime for JRE;
Java3D for Windows(OpenGL version)Runtime for JRE;
Java3D for Solaris/SPARC SDK for JRE;
Java3D for Solaris Runtime 64 bit support;

其中前三个版本是开发包。第4、5、6个版本是Java3D运行期支持程序包。最后一个是支持Solaris 64 bit操作平台运行Java3D的程序包。前三个的开发包包含了各自对应的运行期支持包。Java语言本身具有跨平台特性,无论使用上述哪个版本的开发包,概念和实现代码都会保持完全一致。这里我们使用Java3D for Windows(OpenGL version)SDK for JDK(include Runtime);版本作为我们讨论、实现Java3D的工具包。注意在安装此版本SDK前要保证下列环境:

Java 2 (Runtime or SDK) version 1.3.1 或更后的版本

OpenGL 1.1 或更后的版本,并且是Microsoft支持的显卡厂商

Windows NT 4.0 only: Service Pack 3 或更后的版本(Window2000、WindowXP)

1.2 Java3D与其他三维技术的比较

JAVA3D 可应用在三维动画、三维游戏、机械CAD等多个领域。但作为三维显示实现技术,它并不是唯一选择而且是一个新面孔。在Java3D之前已经存在很多三维技术,这些三维技术在实现的技术、使用的语言以及适用的情况上各有不同,我们主要介绍与Java3D又密切关系的三种技术:OpenGL、 DIRECT3D、VRML

OpenGL是业界最为流行也是支持最广泛的一个底层3D技术,几乎所有的显卡厂商都在底层实现了对 OpenGL的支持和优化。OpenGL同时也定义了一系列接口用于编程实现三维应用程序,但是这些接口使用C(C++)语言实现并且很复杂。掌握针对 OpenGL的编程技术需要花费大量时间精力。

DIRECT3D是Microsoft公司推出的三维图形编程API,它主要应用于三维游戏的编程。众多优秀的三维游戏都是由这个接口实现。与OpenGL一样,Direct3D的实现主要使用C++语言。

VRML2.0 (VRML97)自1997年12月正式成为国际标准之后,在网络上得到了广泛的应用,这是一种比BASIC、JAVASCRIPT等还要简单的语言。脚本化的语句可以编写三维动画片、三维游戏、计算机三维辅助教学。它最大的优势在于可以嵌在网页中显示,但这种简单的语言功能较弱(如目前没有形体之间的碰撞检查功能),与JAVA语言等其它高级语言的连接较难掌握,因而逐渐被淹没在竞争激烈的网络三维技术中。

表1是Java3D与其它三维技术的比较图,可以从中直观的看出他们相互间的区别:

技术 实现层次 开发技术(难度) 扩展性 最适合应用领域
Java3D 中层(JVM) Java(较易) J2SE标准扩展(好) 网上三维显示实现…
OpenGL 底层(显卡) C/C++(难) 各大厂商支持(较好) 三维设计软件…
Direct3D 底层(操作系统) C++(较难) Windows平台(差) 三维游戏…
VRML 上层(网页) 标记语言(容易) 安装插件支持(一般) 网上虚拟现实…


表1:3D技术对招表

2 Java3D的场景图结构
Java3D实际上是Java语言在三维图形领域的扩展,与Java一样,Java3D有纯粹的面向对象结构。Java3D的数据结构采用的是Scene Graphs Structure(场景图),就是一些具有方向性的不对称图形组成的树状结构(图1)。

我们在一个Java3D应用程序看到的逼真三维场景从程序的角度看来,实际就是由Java3D定义的一系列的对象,这些对象不是杂乱无序,对象之间也不是毫无关系。如果想让三维图像正常显示,必须在这两点上遵循Java3D场景图的规定。观察图1,Java3D场景图的树结构由各种各样的对象组成:

在图中出现的这些对象都实现了Java3D中有重要的意义的类,从逻辑上我们将它们分为三类:

根节点(Root):Virtual Universe Object
节点(Node):Local Object、Branch Group Nodes、Behavior Node、Shape3D Node…
叶子节点(Leaf):Appearance、Geomery..


图1:在应用中的Java3D场景图

场景图中线和线的交汇点称为节点(Node),这些节点都是Java3D类的实例(Instance of Class),节点之间的线表示各个实例之间的关系。

Virtual Universe是根节点,每一个场景图的Virtual Universe是唯一的。
在Virtual Universe下面是Locale节点,每个程序可以有一个或多个Locale,但同时只能有一个Locale处于显示状态,就好象一个三维世界非常大,有很多个景点,但我们同时只能在一个景点进行观察。Java3D允许从一个Locale跳到另一个Locale,不过绝大多数程序只有一个 Locale。
每一个Locale可以拥有多个BranchGroup节点。所有三维形体的其位置信息(Transform Group Nodes)都建立在BranchGroup节点之上。
TransformGroup Node用来设定Shape3D在Virtual Universe中的位置。
Spape3D Node是三维图形节点,这个节点的实体放映在最后的显示画面中,就是三维世界中的每个形体。包括正方体、球体以及任何形状和外观的三维形体。
位于场景图最下层的是两个叶子节点:三维体的外观(Appearance)和几何信息(Geometry),这两个节点定义了一个三维体的显示效果。
View Platform位于图1的另一个分枝上,与前面所有描述三维体的性质的概念不同,View Platform和View都是用来定义观察者的信息。
上面所列的概念很多,但是对于建立一个简单的Java3D程序,我们至少需要了解三个概念:虚拟宇宙(Virtual Universe)、场景(Locale)、坐标系统。

2.1 虚拟宇宙(Virtual Universe)

在Java3D中,虚拟宇宙被定义为结合一系列对象的三维空间。虚拟宇宙被用作最大的聚集体表现单位,同时也可被看作一个数据库。不管是在物理空间还是逻辑内容,虚拟宇宙都可以很大。实际上在大多数情况下,一个虚拟宇宙就可以满足一个应用程序所有的需求。

虚拟宇宙是各自独立的个体,原因是在任何时候一个结点对象都不能在超过一个的虚拟宇宙中存在。同样的,在一个虚拟宇宙中的结点对象也不能在其他的虚拟宇宙中可见或者与其他的对象结合。

对于一个Java3D应用程序,必须定义一个虚拟宇宙才可以在这个"宇宙"中显示三维图像。

2.2 Java3D的坐标系统

默认情况下,Java3D的坐标系统是右旋的,用方位语义学来解释就是:正y方向是本地重力的上,正x方向是水平的右,正z是这对着观察者的方向。默认的单位是米。

双精度浮点、单精度浮点甚至是定点来表示的三维坐标都足够来表示和显示丰富的3D场景。不幸的是,场景不是真实世界,更不必说整个宇宙了。如果使用单精度坐标,有可能出现下列情景:

离原点仅有一百公里的距离,被描绘得相当量子化,所能达到的最好效果就是三分之一英寸,在实际应用中这样的精度比要求的粗糙的多。
如果要缩小到一个很小的尺寸(例如表现集成电路的大小),甚至在离原点很近的地方就会出现同坐标问题。
为了支持一个大型的邻接虚拟宇宙,Java3D选择了有256位的高分辨率坐标:

Java3D高分辨率坐标由三个256位的定点数组成,分别表示x、y、z。定点被固定在第128位,并且值1.0被定义为真实的1米。这个坐标系统足够用来描述一个超过几百万光年距离的宇宙,也可以定义小于一质子大小(小于一普朗克长度)的对象。

在Java3D中,高分辨率坐标仅仅用于将更加传统的浮点坐标系统嵌入更高分辨率的底层系统。用这种方法,可以创造出一个具有任意大小和规模的在视觉上无缝的虚拟宇宙,而且可以不必担心数字上的精度。(参看表2)

一个256位的定点数还具有能够直接表示几乎任何的合理适当的单精度浮点值。

Java3D 用有符号的、两位补码的256位定点数字来表示高分标率坐标。尽管Java3D保持内部高分辨率坐标表示的不透明,但用户用有八个整型变量的数组来表示 256位的坐标。Java3D把数组中从索引号由0到7分别看作高分辨率坐标的从高到底位上的数。第128位上是二进制的小数点,也可以说在索引号为3和 4的整数之间。高分辨率坐标的1.0就是1米。

如果是"小"的虚拟宇宙(类似于相对比例的几百米),在虚拟宇宙对象下的(0.0,0.0,0.0)点建立一个带有高分辨率坐标的Locale作为根节点就足够使用了;装入程序在装入过程中能自动构建结点,而在高分辨率坐标下的点不需要任何外部文件的直接描述。

大一些的虚拟宇宙期待被构建为有如同计算机文件那样的层次,这意味着一个根宇宙要包含由外部文件引用的嵌入虚拟宇宙。就这样,文件引用的对象(用户指定的Java3D组或高分辨率结点)定义了被读入现存虚拟宇宙的数据的位置。

Java 3D 高分辨率坐标
2n Meters Units
87.29 Universe (20 billion light years)
69.68 Galaxy (100000 light years)
53.07 Light year
43.43 Solar system diameter
23.60 Earth diameter
10.65 Mile
9.97 Kilometer
0.00 Meter
-19.93 Micron
-33.22 Angstrom
-115.57 Planck length

表2-1:Java 3D 高分辨率坐标

2.3 场景(Locale)

为了支持大型虚拟宇宙,Java3D提出了"Locale"的概念。Locale把高分辨率坐标作为起源。把高分辨率坐标看作精确的定位,它在高分辨率坐标的影响范围之内使用精度较低的浮点坐标指定对象的位置。

一个Locale和与它结合的高分辨率坐标一起组成了在虚拟宇宙之下的一个表现层。所有虚拟宇宙包含一个或多个高分辨率Locale。而所有其他的对象都是附加在一个Locale上的。在整个体系中,高分辨率坐标扮演的是上层的仅供翻译的转换结点。例如,附加到一个特定Locale的所有对象的坐标都会与这个Locale位置的高分辨率坐标有关。(图2)



图2:高分辨率坐标指定场景

如果一个虚拟宇宙与传统的计算机图像的概念相近,给定的虚拟宇宙可能会变得太大。所以在通常情况下最好把一个场景图看作是一个高分辨率坐标场景的子结点。

构造一个三维场景,程序员必须运行一个Java3D程序。这个Java3D应用程序必须首先创建一个虚拟宇宙对象并且至少把一个Locale对象附加之上。然后,构建出需要的场景图像,它由一个分支组结点开始并且包括至少一个观察平台对象,而场景图就是附加于这个观察平台。当一个包含场景图的观察对象被附加于一个虚拟宇宙,Java3D的渲染循环就开始工作。这样,场景就会和它的观察对象一起被绘制在画布上。

2.4 编程实现一个三维世界

这一部分描述怎样调用VirtualUniverse、Locale和HiResCoord对象的编程接口实现建立一个完整的"三维世界"。注意,这个三维世界有原点、坐标,是实现三维显示程序的第一步。

VirtualUniverse对象有下列构造函数:

public VirtualUniverse()

这个函数构造了一个新的VirtualUniverse对象,这个对象可以用来创建Locale对象。

Locale对象有下列构建器:

public Locale(VirtualUniverse universe)
public Locale(VirtualUniverse universe, int x[], int y[], int z[])
public Locale(VirtualUniverse universe, HiResCoord hiRes)

这三个构建器在指定的VirtualUniverse中创建了一个新的高分辨率Locale对象。其中第一个形成了一个在(0.0,0.0,0.0)的 Locale对象。其他的两个构建器在指定的坐标上建立了Locale对象。在第二种形式里,参数x,y,z是含八个32位整数的数组,这些数组指定了各自的高分辨率坐标。

HiResCoord对象定义了一个使用三个高分辨率坐标的点,而每一个坐标又由三个定点数组成。每个高分辨率坐标数共有256位,第128位是二进制小数点。Java3D使用长度为八的整数数组来定义或提取一个256位的坐标值。Java3D用数组内的第一个整数来表示高32位,最后一个整数来表示低32位。

HiResCoord 对象有以下的构建函数:

public HiResCoord(int x[], int y[], int z[])
public HiResCoord(HiResCoord hc)
public HiResCoord()

第一个构造函数从输入的三个长度为八的整数数组生成高分辨率坐标。整数数组定义了与其同名坐标对象的值。第二个构造函数通过复制另外一个坐标创建一个新的坐标。第三个构造函数创建了一个值为(0.0,0.0,0.0)的坐标。

所有Java3D程序都会首先建立VirtualUniverse和Locale对象,也就是说都会包含表3所示的代码。为了方便使用,Java3D为最原始的VirtualUniverse创建了几个子类:SimpleUniverse 、ConfiguredUniverse,这些子类保证了可以将三维图像轻易的在通过Canvas3D的对象在Applet或Frame中显示。其中最常用到的是SimpleUnivese对象,这个类位于包com.sun.j3d.utils.universe中。

u = new SimpleUniverse(v,viewer);
u.getViewingPlatform();
ViewingPlatform viewingPlatform = u.getViewingPlatform();
Java 3d 三维图形库使用 Java 3D三维图形库简单使用。 阅读详情

相关推荐

基于Java3D的网络三维技术的设计与实现

互联网的出现及飞速发展使IT业的各个领域发生了深刻的变化,它必然引发一些新技术的出现。3D图形技术并不是一个新话题,在图形工作站以至于PC机上早已日臻成熟,并已应用到各个领域。然而互联网的出现,却使3D图形技术发生了和正在发生着微妙而深刻的变化。Web3D协会(前身是VRML协会)最先使用Web3D术语,这一术语的出现反映了这种变化的全貌,没有人能严格定义Web3D,在这里我们把Web3D理解为:互联网上的3D图形技术,互联网代表了未来的新技术,很明显,3D图形和动画将在互联网上占有重要的地位。

m0_56073435的博客 2118

java3D 第三章 java3D基本图形类详解

第三章 java 3D基本图形功能java 3D基本图形功能java 3D场景式管理SimpleUniverse类及其方法ViewingPlatform类及方法包的关系Shape3D类及方法Appearance类及方法BranchGroup类TransformGroup类GeometryArray类点PointArray类PointAttributes类运用上文类进行代码实战——DisplayPointsIndexedPointArray类线LineArray类LineAttributes类运用上文类进行代

qq_48092631的博客 2万+

Python入门实战:Python3D编程基础

1.背景介绍 “Python3D”的中文翻译叫做“Python3D编程”,主要是指将数据结构、算法和渲染技术结合起来,创建三维可视化图像和动画的计算机程序。基于python语言可以实现功能强大的三维图形编程环境。近年来,Python3D越来越受到广泛关注,其应用范围和潜力逐渐扩展。 本文通过实战案例和详尽的专业知识讲解,希望能够帮助读者更好地理解并掌握

AI天才研究院 1015

Idea新建项目配置Java3D 环境配置

安装包的下载:1.可以去官网:JDK下载,进入官网页面,然后点击Download Java。2.搜博客,可能会内含安装包链接。​2.在这个界面可以选择我们要安装的版本​4. 双击后面蓝色字体即可下载;这时,会弹出一个页面​5. 接下来会跳转到登录页面,有账号可以直接登录,没有的话可以先注册 ,有就正常下载。6.下载好了安装包后,双击进入安装向导7.系统默认路径在C盘,点击这里选择更改安装路径,建议不用改,以后好找。8.然后点击下一步,直到安装成功。

qq_63976098的博客 1272

全面掌握Java 3D编程技术指南

本文还有配套的精品资源,点击获取 简介:《Java 3D指南》是Sun公司发布的权威编程手册,详尽介绍使用Java 3D技术开发三维图形应用程序的各个方面。本书结合理论和实践,从基础概念到高级特性,带领开发者掌握scenegraph架构、几何形状创建、变换应用、材质光照、纹理映射、摄像机控制、动画交互、碰撞检测,以及性能优化等关键知识点。包含配套示例代码和详细章节PDF,是...

weixin_36235398的博客 2276

Java实现3D相册制作全流程

Java 3D库是用于在Java平台上开发三维图形应用程序的一组API和工具。它们允许开发者创建复杂的3D场景、动画和交互式图形用户界面。根据不同的应用场景和需求,可以选择不同类型的Java 3D库。:这是最直接和标准的3D图形编程接口,它遵循Java社区流程,是Java Platform, Enterprise Edition (Java EE)的一部分。它具备良好的跨平台性,支持硬件加速,并且拥有丰富的文档和社区支持。:JOGL为Java程序提供了对OpenGL图形API的全面访问。

weixin_35903223的博客 1089

java3d编程简介(点线面的编程实例)

原文地址:http://blog.youkuaiyun.com/gaoyunpeng/article/details/1771473 本文调整了一下格式,补充,转载发布 一。JAVA3D的作用: JAVA3D可用在三维动画、三维游戏、机械CAD等领域。 1.可以用来编写三维形体,但和VRML不同,JAVA3D没有基本形体,不过我们可以利用JAVA3D所带的UTILITY生成一些基本形体如立方体

OleNet的专栏 4495

掌握Java游戏编程:JDK工具的使用与3D变换

本文深入探讨了Java游戏编程中基础JDK工具的使用方法,包括Java编译器javac、Java解释器java、以及小程序查看器appletviewer。通过详细说明这些工具的命令行选项和环境变量,帮助开发者更好地利用JDK进行游戏开发。此外,本文还介绍了3D变换的基础知识,包括在三维空间中旋转点的数学公式和概念。

weixin_32251525的博客 779

java3d的简介_java3d简介

3 Java3D的观察模式Java3D引入了一种新的观察模式,这种模式使Java编写的显示效果符合"编写一次,随处运行"的原则。Java3D还把这种功能推广到显示设备或六等级自由度输入外部设备,例如跟踪摄像头。这种新的观察模式的"一次编写,随处观察"的特性意味着用Java3D观察模式编写的应用程序和Applet可以广泛应用于各种各样的显示设备。在不修改场景图的条件下,图像可以在包括标准电脑显示、多...

weixin_35779001的博客 1411

Java3D实现的交互式魔方模型教程

Java3D 是一种基于Java语言的高级3D编程接口,旨在简化三维图形的开发。它允许开发者利用Java平台的强大功能,创建复杂的三维场景和应用程序。Java3D具备跨平台的特点,可以在多种操作系统上运行,这得益于Java的“一次编写,到处运行”的特性。在Java3D中,类是3D变换的核心组件,它允许用户对3D空间中的对象进行位置、旋转和缩放操作。该类是通过4x4矩阵来实现的,这种矩阵可以表示一个3D空间中的仿射变换。

weixin_35189483的博客 495

Java 3D游戏编程:从模型到屏幕的变换

本文介绍了Java游戏编程中的3D图形渲染过程,探讨了3D管道的概念以及坐标系统之间的转换,包括模型坐标系(MCS)、世界坐标系(WCS)、视图坐标系(VCS)和屏幕坐标系(SCS)。文章深入分析了如何将3D坐标点转换为2D屏幕坐标,以及这一过程中涉及的矩阵操作和透视投影的数学原理。

weixin_28787801的博客 849

Java3D编程(简介)

Java3D是Java的三维图像处理的一个扩展包,Java3D编写的程序可以运行在多种机器或网络客户端。Java3D提供了一组比其他的大多数图形库更简单的接口,但是性能却不亚于它们。Java3D基于现有的技术如DirextX和OpenGl,所以运行的的速度不会慢。Java3D的安装和运行Java3D的运行需要JavaSE环境,所以需要先安装JavaSE环境,下载路径可以参照提供的路径下载:http://java.sun.com/javase/downloads/index.jsp,在安装完成后就可以安装Ja

2440

X3D SAI 3D场景与交互Java实现教程

本文还有配套的精品资源,点击获取 简介:本集合通过X3D SAI(Spatial Arrangement and Interaction)实例,详细指导JAVA开发者如何在网页上创建和操控交互式3D场景。涵盖了X3D技术的基础知识,以及如何利用SAI扩展和XJ3D开源库在JAVA平台上实现3D场景的构建、对象布局、交互设计、动画制作和数据交换等。通过这些示例代码和模型,开发...

weixin_35414484的博客 1557

Java联网3D坦克大战(网络编程)

一、游戏效果 Java网络编程联机3D坦克大战 二、游戏涉及知识 服务器端运用了 IO、线程、网络、面向对象、异常 的内容, 客户端使用 unity3d引擎进行开发 三、服务器设计思路 1.实例化Socket服务器,并指定端口号 2.主线程循环监听多个客户端的连接,并将每个客户端连接保存在集合中 3.启动接收数据子线程对象,每建立一个连接,则启动一个子线程来处理数据的广播 四、服

每天一个前端小知识~ 1万+

java3d和Swing结合示例

本示例主要是利用java3d和Swing在java3d的场景中添加了不同的形体,然后每个形体都有着相同的动画效果,平移(沿X/Y轴)、旋转、缩放等,以按钮的形式加以控制,以java3d初学者参考。

大漠多线程增强版:解决窗口消失、坐标错乱与识别卡死

多线程环境下窗口自动化面临的核心挑战,本质是GDI资源非线程安全、HWND生命周期失控及图像引擎状态污染三大底层问题。Windows GUI编程中,跨线程共享hDC、缓存失效的窗口句柄、OpenCV静态Mat等设计缺陷,导致FindPic失败、GetCursorPos异常、坐标跳变等典型故障。本方案通过线程局部存储(TLS)重构资源生命周期、WinEventHook+心跳探测构建实时窗口状态链、ABI对齐的多语言内存契约,实现稳定低延迟的并发UI识别与控制。适用于游戏多开监控、电商RPA、后台UI状态采集等

weixin_30561177的博客 477

java3d简介

Java3D用其自己定义的场景图和观察模式等技术构造了3D的上层结构,实现了在Java平台使用三维技术。本文在原理上着重介绍Java3D特有的两个重要概念:场景图(Scene Graph)、观察模式(View Model)。在接口使用上的介绍分为两部分:实例说明如何使用Java3D接口;说明如何将Java3D技术与Java原有的Web技术(JSP、Serverlet)相结合,在网页上实现三维显示。1. 关于Java3D 1.1 Java3D简介Java3D API是Sun定义的用于实现3D显示的接口。3D技

yangf1275的专栏 1195

芯片详解——AD7606

AD7606详解

weixin_45661757的博客 5017

java 3d 配置_Java 3D简介及安装运行

简介Java 3D是对Java的一个用来显示三维图形的扩展。用Java 3D编写的程序可以运行在很多不同类型的计算机或互联网上。Java 3D类库提供了比其它多数图形库更简单的接口,但仍有足够的能力制作不错的游戏和动画。Java 3D建立在DirectX和OpenGL这些已有的技术上,所以程序运行并不是你所想像的那样慢。并且Java 3D中也可以加入使用诸如TrueSpace和VRML这些3D模型...

weixin_35822534的博客 4954

基于深度强化学习的无地图移动机器人导航:让机器人在未知环境中智能前行

虽然仍然面临sim-to-real差距、安全性保证等挑战,但随着算法的不断改进和计算能力的提升,基于DRL的无地图导航技术将在服务机器人、工业自动化、太空探索等领域发挥越来越重要的作用,为人类生产和生活带来更大便利和价值。对于复杂环境下的动态目标导航问题,研究人员提出了多智能体协同控制算法(如Teamwork-Net算法),通过多个智能体分别控制机器人的运动速度与运动方向,协同实现更高效、更稳定的导航性能。深度强化学习结合了深度学习的感知能力和强化学习的决策能力,非常适合解决无地图导航问题。

weixin_45131592的博客 902

64.企业级案例(上)-金融行业DDD落地全流程支付系统-附架构演进图

本文以金融支付系统为例,完整展示了DDD在企业级项目中的落地流程。首先通过事件风暴识别核心业务领域,包括交易、渠道、账务等限界上下文。在战略设计中划分上下文边界,确定交易上下文为核心域。战术设计聚焦交易上下文,详细设计了支付单聚合、值对象和支付路由服务。架构实现采用CQRS+EDA模式,通过命令端处理交易,查询端异步更新读模型,并利用防腐层隔离外部渠道。案例展示了DDD从业务探索到架构实现的全过程,体现了其在复杂业务系统中的价值。

yonggeit的博客 3036

【亲测免费】 探索Java3D:在IntelliJ IDEA中开启3D图形编程之旅

探索Java3D:在IntelliJ IDEA中开启3D图形编程之旅 【下载地址】IDEA下Java3D的环境配置指南分享 IDEA下Java3D的环境配置指南欢迎使用本资源包,本指南将帮助您在IntelliJ IDEA集成开发环境中配置Java3D,让您能够顺利地开发和运行Java3D项目 ...

gitblog_06532的博客 569

uniapp - 解决真机调试报错 request:fail abort statusCode:-1 java.security.cert.CertPathValidatorException: Tr

uni-app,真机调试报错,app端平台,安卓Android,安卓App发布线上报错,打包后接口请求失效了,api接口报错,真机运行安卓app时接口不通且报错,request:failabortstatusCode:-1java.security.cert.CertPathValidatorException:Trustanchorforcertificationpathnotfound.,真机调试,苹果ios真机报错,Uniapp打包到app后报错,uni-app真机调试报错,服务器

🏆 前端领域优质创作者 1万+
上一篇: 基于Java的Web应用
下一篇: 应用JDOM处理数据库到XML转换的JSP实现
zaowei21
博客等级 码龄25年 38粉丝 517原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值