没有合适的资源?快使用搜索试试~ 我知道了~
≥=SoftwareX 6(2017)48原始软件出版物Prosene:一个功能丰富的交互式环境框架让·皮埃尔·沙拉兰博斯哥伦比亚国立大学,哥伦比亚,波哥大阿提奇莱因福奥文章历史记录:接收日期:2016年8月19日接收日期:2017年1月5日2017年1月6日接受MSC:68U0568U35保留字:计算机图形学图形实用程序交互技术信息接口和表示用户接口a b st ra ct我们介绍Prosene,一个功能丰富的,开源的交互式环境框架Prosene的设计包括一个三层洋葱式软件架构,促进不同的可能的开发场景。框架的最内层将用户手势解析与用户定义的动作进行了分离.中间层实现了一组功能丰富的广泛使用的运动动作,允许选择和操纵对象,包括场景视点。最外层将这些特性作为Processing库公开。结果表明,我们的方法的可行性,以及简单性和灵活性的Prosene框架API。©2017作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。代码元数据当前代码版本3.0.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-16-00066法律代码许可证GPL-v3使用git的代码版本控制系统使用的软件代码语言、工具和服务处理、Ruby、Python、JavaScript编译要求、操作环境依赖性JavaJDK 1.7如果可用,链接到开发人员文档/手册http://remixlab.github.io/proscene-javadocs/问题支持电子邮件jpcharalambosh@unal.edu.co1. 动机和意义在过去的几十年中,人机接口设备(HID)的快速增长带来了利用这些技术创建引人注目的界面技术的挑战[1]。因此,人机交互(HCI)研究人员将注意力集中在减少输入上事件到特定的交互式应用程序中。例如,从(减少的)6个自由度(DOFn,n6)的3D对象操纵,输入事件已经看到许多方法的诞生,例如,采用触摸设备作为输入[2在这一领域的研究是令人兴奋的丰富。电子邮件地址:jpcharalambosh@unal.edu.co。http://dx.doi.org/10.1016/j.softx.2017.01.002本文介绍了上述方法的正交方法,旨在为进行不同的HCI实验提供一个通用的可扩展背景,例如用户交互比较研究(例如参见[9])。我们采取输入事件解析和实现用户定义的动作,其中所有三个通用交互任务(导航,对象的选择和以及应用程序控制[10])可以指定为两个互补但独立的任务。我们提出了一个三层洋葱式的软件架构设计[11,12],促进了不同的可能的开发场景。最内层名为BIAS,从用户定义的动作中解析用户手势BIAS提供了一组基于DOFn的事件类型,即伪事件,指定了用户姿势数据应该符合的格式,以及将动作绑定到它们的方法第二个,在中间层,命名为Danvet,实现了一个功能丰富的一组广泛知名的运动动作,从默认的假动作事件的交互式框架(交互式坐标系),允许查看-2352-7110/©2017作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxJ.P. Charalambos/SoftwareX 6(2017)4849[客户端]表1Prosene默认DOFn为基础的伪事件类型。伪事件类型n示例KeyboardEvent0按键点击事件0鼠标点击,触摸点击DOF1Event1鼠标滚轮MotionEventDOF2Event2鼠标拖动,鼠标移动DOF3事件3操纵杆DOF6Event6 3DconnectiveSpace Navigator,[19]图1.一、 Prosene概念框架。上图:交互式框架(圆圈中)形成了一个树状层次结构,组织成一个场景对象;下图:代理解析输入并将其简化为bogus-events,以发送updateTrackedGrabber并将消息类型处理到交互式框架,从而实现S& MO。 代理和伪事件类型可以通过继承(虚线)进行定制。点导航以及可以虚拟地绑定到任何交互装置的对象的选择和操纵(SMO)Danvis还提供了实现先进技术的基础,如第三人称相机控制[10]。第三层是最外层,即Prosene,它只是将在其他两个较低级别层发现的组合功能暴露给Processing语言,这是一种在计算可视化设计中广泛使用的基于Java的工具,具有简单的API和可扩展的架构[13,14]。其他软件库对输入数据进行标准化,但没有提供将这些输入与高级操作相关联的方法。例如,虚拟现实外围网络框架将数据减少到三种类型:跟踪器,模拟和按钮[15],但没有提供绑定到它们的高级(运动)动作。我们还注意到,虽然其他处理实用程序库,如Nest[16],game control plus[17]或Simple Multi-Touch SMT[18],可以处理不同类型的输入事件,但它们都没有提供将此类输入事件与应用程序用户定义的行动2. 概念框架成为输入目标(inputGrabber)。S MO要求代理将伪事件发送到传递两种消息类型的交互式帧(参见下面的图11. updateTrackedGrabber,其通过查询代理池中的每个交互式帧以检查它们中的任何一个是否满足checkIfGrabsInput条件来更新inputGrabber2. 通过简单地调用interactive-frameperformInteraction方法,当前inputGrabber的句柄执行交互伪事件可以很容易地通过继承来专门化,但是键盘、点击和运动事件类型在默认情况下在Prosene中提供(参见表1)。伪事件实例封装快捷方式(例如,修饰符掩码和在键盘事件上按下的虚拟键)对于定义用户手势绑定是有用的。运动事件支持绝对和相对输入事件[20],并且具有用于DOFi到DOFj的方便转换器,0j i<,运动事件。<由于许多默认的交互式框架运动动作由具有不同DOFn的伪事件实现,该框架有效地为研究者提供了一个进行用户交互比较研究的平台这样的研究只涉及为每个研究的隐喻实现一个代理,同时在所有这些隐喻之间共享相同的交互框架动作(见3.3节)。注意,对于每个隐喻,同样的动作需要不同的实现(参见第1节)。Prosene的其他用例涉及试验:1. 来自默认和自定义伪事件的自定义操作(参考图中的虚线)。第3.3.2节);2. 先进的几何剔除技术(见第3.1节);以及,3. 需要各种离屏渲染场景操作的高级渲染技术(参见第4节,示例d)。Prosene API向开发人员展示了一种功能性编程方法,以设置交互式框架动作和形状(参见第3.3节)。API的文档可在线获取[21]。3. 软件描述3.1. 软件构架Prosene框架体系结构包括以下软件包:Prosene的主要目标之一是为HCI研究人员提供一个通用且简单但完全可定制的框架,以测试涉及第1节中介绍的三个通用交互任务的不同实验想法。在Prosene中阐明这种交互任务的关键概念是交互框架,它只是一个3D(或2D)交互坐标系。Prosene处理应用程序,被称为草图,因此应该总是声明一个场景对象和其中的一些交互式框架。场景交互式框架集形成一个树状层次结构,总是包含至少一个眼睛框架,用于操纵场景视点(见图1)。 1和第3.3节)。Prosene使用代理从任何用户输入源收集数据,并将其解析为虚假事件。每个代理具有交互帧池(所有场景交互帧的子集),其中一个交互帧可以FPSTiming,一个顺序定时处理程序,使用渲染器主事件循环作为时钟。FPSTiming高级包处理程序(timing-handler)处理定时任务和动画器(定义动画例程的对象)的集合。BIAS , 代 表 ( B ) ogus ( I ) nput ( A ) nums ( S ) electorpackage,表示框架输入处理程序,将硬件输入事件与用户定义的操作解耦(参见第2节)。BIAS高级包处理程序(输入处理程序)处理代理的集合和bogusE事件的事件分发器队列,inputGrabber()元组,在渲染器主事件循环结束时每帧处理一这样的元组表示传递到抓取器对象的消息交互式框架(见图1) 2)的情况。50J.P. Charalambos/SoftwareX 6(2017)48[客户端]图二. BIAS数据流图。代理通过输入处理程序或通过目标应用程序(当它实现侦听机制时)捕获用户手势,然后将其减少为bogus-events以调用updateTrackedGrabber(BogusEventevent)或handle(BogusEventevent)。在后一种情况下,代理将bogusEvent、inputGrabber()元组入队,以便输入处理程序在主事件循环结束时顺序地将它们出队,最终调用抓取器对象上的动作(例如,交互帧)。Daniming,一个构建在BIAS和FPSTiming之上的几何处理程序,与GWT JRE仿真层完全兼容[22],允许直接的JS框架移植。丹佛斯实施:一组功能丰富的广泛使用的交互式帧运动动作,包括关键帧3.2. 软件功能上述框架基础突出了以下特点:• 自包含基于java执行使用标准,interpolation [23];一个通用的交互式框架API,支持几何转换例程和运动约束[24];以及,单线程编程技术,不依赖于任何特定的窗口工具包,促进框架的可移植性;一种功能齐全的眼睛,具有高水平:1. 定位和视区尺寸标注方法臭氧消耗物质;2. 可见性例程,从这些例程可以实现不同的几何剔除技术,例如(分层)背面和视锥剔除;以及,3. 第三人称相机控制,只需要场景来定义眼睛要跟随的化身对象(参见第4节,示例c)。上述软件包已作为完全独立的git子树发布[25],允许第三方轻松包含它们,例如,将它们包含在Prosene实现中,将它们的所有组合特性暴露给Processing语言[13](见图14)。 3)。针对广泛的交互式应用程序,简单到非常复杂的输入设置;在HID和用户定义的操作之间共享的框架,便于软件维护和可扩展性,例如,例如当添加新硬件和/或用户定义的动作时;通过包裹在Processing矩阵操作周围的专用帮助器类,与桌面、Python和Android模式的Processing平滑集成;所有Processing 2D和3D渲染器通过标准鼠标和键盘(桌面和Python模式)以及触摸屏(Android模式)的默认交互性,但不与它们特别绑定。·······J.P. Charalambos/SoftwareX 6(2017)4851−图3.第三章。 Prosene洋葱式框架架构。框架组件显示为圆角矩形,其中git子树为蓝色。每个子树是一个完全独立的软件组件,只依赖于它的子树子集。Prosene提供了最高层Danvis子树和Processing语言之间的接口。这个框架体系结构允许设置其他交互式开发场景,比如假设的BIAS WebGL CustomLib库(虚线)。(关于此图例中颜色的参考解释,请读者参考本文的网络版本3.3. 示例代码段分析3.3.1. Prosene用法Prosene库的日常使用至少涉及到声明一个场景对象,它定义了一个眼睛框架和(可选的)一些交互框架(参见代码片段1)。此外,Prosene向第三方提供了一种函数式编程方法,将用户手势绑定到交互式框架动作,并将形状设置为交互式框架(参见第3.3.2节和第3.3.3节)。算法2操作虚空设置(){. . ./打开/关闭 结合默认行动f 1。setMotionBinding(MouseAgent . LEFT_ID,“rotate“);f 1。setMotionBinding(MouseAgent.RIGHT_ID,“tran s l a te“);f 1。设置单击绑定(MouseAgent . LEFT_CLICK_ID,一、“中心“);f1 . setMotionBinding(DroidTouchAgent . DRAG_ONE_ID,“rotate“);f 1。setMotionBinding(DroidTouchAgent.DRAG_TWO_ID,“tran s l ate“);f 1.setKeyBinding(KeyAgent.LEFT_KEY,“旋转YPos“);f 1。setKeyBinding((Event .移位|活动CTRL)、KeyAgent。return_keys,“return“);/ / binding自定义行动f 1。setMotionBinding(MouseAgent . RIGHT_ID,“customMotion”);f 1。 setMotionBinding(DroidTouchAgent . DRAG_THREE_ID,“customMotion”)的情况下;}/打开/关闭事件来从无论剂c a l l in ghandle()上/打开/关闭减少运动事件e . G . 、的鼠标和的接触剂虚空customMotion(交互式框架框架,MotionEventevent){. . .}算法3代理公共类SpaceNavigatorAgent延伸剂{1}/打开/关闭ID的的太空领航员手势的S t r ing我会/打开/关闭使用作为手势具体实施方式e . G . 、现场 info()s t a t i c intSN_ID =运动轨迹。reg i ster ID(6,“SPC_NAV”);publicvoid online(online){online(online)}getString(); getString()eyeFrame()); set Default Grabber(scene.return();}/打开/关闭T H I S方法波尔尔斯输入从的空间领航员,降低I t/打开/关闭成一DOF6事件 和电影的剂handle()方法c a l l@覆盖publicvoid onDestination(){Destination;. . .返回事件;}}虚空设置(){. . .SpaceNavigatorAgent spcNav =new SpaceNavigatorAgent(scene);scene . getString(). setMotionBinding(SpaceNavigatorAgent . SN_ID,““);f 1。setMotionBinding(SpaceNavigatorAgent . SN_ID,“translate Rotate XYZ“);f 1。setMotionBinding(MouseAgent.RIGHT_ID,“tran s l a te“);}3.3.2. 交互框架动作代码片段2展示了将一些交互式帧动作绑定到用户手势是多么简 单 , 这 些 手 势 由 默 认 场 景 代 理 ( 由 MouseAgent 、DroidTouchAgent和KeyAgent类实现)解析。 注意,该操作可以是任何交互式框架公共方法,采 用 伪 事 件 参 数 或 用 户 定 义 的 参 数 , 例 如 customMotion(InteractiveFrame,MotionEvent),其中(第一个)交互式帧参数是可选的,第二个应该是任何伪事件类型。将交互式框架动作绑定到非常规用户手势需要实现一个代理,例如代码脚本3中定义的SpaceNa vigatorAgent自定义代理从SpaceNavigator设备收集输入数据,并将其解析为伪事件,供交互式帧使用。注意,Space Navigator交互式框架绑定的定义方式与默认代理的定义方式类似当输入不能正确地减少到默认值时,甚至可以定义自定义假事件(参见第2节),作为一个三步过程:1. Declare一个伪事件类型,从伪事件派生类;2. 实现至少一个代理,其将输入解析为自定义伪事件;以及,52J.P. Charalambos/SoftwareX 6(2017)48见图4。Prosene精选示例:(a)android场景;(b)3D交互式小地图;(c)从长方体视点观察到的成群尸体场景(以青色突出显示);以及(d)通过着色器链渲染的场景(激活的着色器标有 *)。(For对本图图例中所指颜色的解释,读者可参考本文的网络版。)算法4虚空设置(){. . .f 1。setShape(“drawCone”); f 2 .setShape(sphere()); f3.setShape(“box”);f 4。setShape(frame2);}/打开/关闭立即模式渲染处理程序voidbox(Interactive Frame frame,PGraphics pg){ pg.(0,255,0);PG.strokeWeight(3);pg.盒(30);}/打开/关闭保留模式渲染处理形状PShapepublic void run(){返回球形(球形,30);}4. 说明性实例当前的Prosene版本包括近40个示例,侧重于库的不同方面。下面是一些选择的例子,说明了图书馆的使用(见第3.3节)(见图1)。 4)、(a) - 包括多个交互框架的Android场景(b) 一个3D交互式小地图,显示透视投影是如何产生的;(c) 在第三人称摄像机控制下,从物体的视角观察到的一群物体[26]场景;以及,(d) 由通过一系列着色器渲染的长方体和球体组成的场景。在我们的开源版本的剩余示例几个经验-在哥伦比亚国立大学进行的研究,视觉计算课程的一部分[27],连同那些3.在新的伪事件类型上实现一些交互式框架操作。3.3.3. 交互式框架形状代码片段4展示了如何设置交互式框架形状。交互式帧setShape方法用于设置:1. 即时模式渲染处理过程,应该在场景中定义,例如使用交互式帧f1,或者在草图内的用户空间中定义,例如使用f3;或者,2. 保留模式渲染处理PShape,例如使用f2。交互式框架形状甚至可以从另一个交互式框架实例中设置,例如使用f4,或者使用第4节中示例(b)中用于可视化主场景眼睛框架的MiniMap交互式框架。注意,设置交互式帧形状允许通过场景拾取缓冲器使用颜色编码来精确选择交互式帧。在OpenProcessing Prosene教室[28]中发现的,展示了我们方法的可行性以及我们框架API的简单性和灵活性。5. 影响使用Prosene框架进行了一些人机交互比较研究例如,[9]比较了使用一些非传统的HID在3D虚拟世界中执行导航任务。该框架允许研究人员将注意力集中在实现不同HID输入事件的解析上,同时简单地调用框架内默认提供的相同DOF6面向主要由艺术家和设计师组成的Processing受众,Prosene API设计中寻求的两个主要目标是简单性和灵活性。Processing社区的反馈不断地为改进它做出贡献。Prosene框架也被几个第三方用于开发广泛的应用程序,例如:J.P. Charalambos/SoftwareX 6(2017)48531. PushmePullMe,一个土木工程应用程序,允许在实时物理引擎的支持下以3D方式构建,推拉建筑结构,[30];2. Just Cause 2 Player Death by Impact,视频游戏Just Cause 2中因撞击而死亡的空间聚类的数据可视化应用[31];以及,3. Montblanc by Onformative是一个商业应用程序,一些艺术家通过编程生成了Montblanc公司提供的一些产品。6. 结论我们已经提出了一个三层的,洋葱状的,框架结构的交互环境的设计,促进硬件输入事件和应用程序的用户定义的动作可以满足DOFn为基础的事件的关键思想。该框架简化了高度交互式应用程序的创建,从简单到非常复杂的输入设置。该框架包括核心组件:BIAS和Danspeed,以及一个高级处理库:Prosene。BIAS,框架输入处理程序,从用户定义的动作中分离硬件BIAS提供了一组DOFn伪事件,指定用户手势数据应该符合的格式,以及将动作绑定到它们的方法框架几何处理程序Danvet提供了与帧(坐标系)的交互性Danview允许视点导航以及SMO,这两者实际上可以绑定到任何交互方式。由于其简单,单线程,自包含,设备无关的设计和低内存占用,使用git子树,BIAS和Danvet可以轻松集成到第三方渲染器中,分别为它们提供输入和场景处理。Prosene 是 目 前 框 架 Prosene 将 上 述 核 心 功 能 无 缝 集 成 到Processing语言(桌面,Python和Android模式)中未来的工作包括将该库移植到p5.js [33],并研究Processing Android模式的替代高级手势识别技术[34]。致谢我们要感谢Cesar Colorado在将Prosene移植到JavaScript方面所做的工作,感谢Victor Manuel Forero编写了最初的ProseneAndroid代理。感谢Jacques Maire和Sebastian Chaparro分享他们的各种实验,其中一些现在是我们当前Prosene版本的示例部分的一部分。感谢Andres Colubri的持续支持和透彻见解。引用[1] LaViola JJ,Keefe DF. 3D空间互动:艺术、设计与科学的应用。In:ACMSIGGRAPH 2011 courses. New York,NY,USA:ACM; 2011. p.1:1-1:75。http://dx.doi.org/10.1145/2037636.2037637网站,URLhttp://doi.acm.org/10.1145/2037636.2037637网站。[2] Hancock M,ten Cate T,Carpendale S.粘性工具:用于多点触摸桌的全6DOF基于力的交互。ACM International Conference on Interactive Tabletops andSurfaces(ACM交互式桌面和表面国际会议)New York,NY,USA:ACM;2009.第133- 140页。http://dx.doi.org/10.1145/1731903.1731930网站,URLhttp://doi.acm.org/10.1145/1731903.1731930网站。[3] 放大图片作者:Martinet A,Casiez G,Grisoni L. 3D操作任务中多点触摸交互技术的完整性和可分离性。IEEE Trans Vis Comput Graphic 2012;18(3):369-80. http://dx.doi.org/10.1109/tvcg.2011.129网站。[4] 刘 杰 , 欧 玉 春 , 傅 华 , 戴 春 玲 。 用 于3D 对 象 的 6DOF 操 纵 的 双 指 手 势 。CompGraphForum2012;31(7pt1):2047-55.http://dx.doi.org/10.1111/j.1467-8659.2012.03197.x网站。[5] Song P,Goh WB,Hutama W,Fu C-W,Liu X.一个手柄杆比喻为虚拟对象操纵与半空中的互动。在:2012年ACM年度会议的New York,NY,USA:ACM; 2012.p. 1297-306. http://dx.doi.org/10.1145/2208516.2208585网站,URLhttp://doi.acm.org/10.1145/2208516.2208585网站。[6] 放大图片创作者:Ren G,O'Neill E.关于触摸三维的特别部分:用徒手手势进 行 三 维 选 择 。 ComputGraph2013;37 ( 3 ) : 101-20.http://dx.doi.org/10.1016/j.cag.2012.12.006网站。[7] Shiratori T,Hodgins JK.基于加速度计的用户界面,用于控制物理模拟角色。ACMTransGraph2008;27(5):123:1-123:9.http://dx.doi.org/10.1145/1409060.1409076网站,URLhttp://doi.acm.org/10.1145/1409060.1409076网站。[8] Smith C,Christensen HI.使用人体运动模型的Wiimote机器人控制。2009年IEEE/RSJ智能机器人和系统国际会议论文集。Piscataway,NJ,USA:IEEEPress; 2009. p. 5509-15URLhttp://dl.acm.org/citation.cfm? id=1732643.1732942。[9] Parra MA.在虚拟环境下比较处置权不符合常规。[硕士[10] 放大图片作者:Jankowski J,Hachet M.交互式3D的交互技术综述环境. 在:Eurographics 2013-STAR.西班牙:赫罗纳; 2013年。网址http://hal.inria.fr/hal-00789413。[11] 巴勒莫河洋葱建筑,2008年。http://jeffreypalermo.com/blog/the--part-1/.[2016年12月16日访问]。[12] Palermo J. Understanding onion architecture,2015.http://blog.thedigitalgroup.com/chetanv/2015/07/06/understanding-onion-architecture/. [2016年12月16日[13] Colubri A , Fry B. 引 入 处 理 2.0 。 在 : ACM SIGGRAPH 2012 会 谈 . NewYork,NY,USA:ACM;2012.12:1http://doi.acm.org/10.1145/2343045.2343061http://dx.doi.org/10.1145/[14] 范托姆·J 处理2:创意编程食谱。出版社:Packt Publishing;2012.[15] 泰勒先生, II RM, 哈德逊 TC, 西格 一、 韦伯 H, Juliano J, HelserAT.VRPN:独立于设备、网络透明的VR外设系统。ACM虚拟现实软件与技术研讨会论文集。New York,NY,USA:ACM; 2001.第55-61页。http://dx.doi.org/10.1145/505008.505019网站,URLhttp://doi.acm.org/10.1145/505008.505019网站。[16] 索科洛夫斯基湖Nest:基于3.0的Scenegraph和鼠标事件处理系统,2013.http://transmote.com/nest/网站。[17] Jagger P. Game Control Plus Library,2016。http://lagers.org.uk/gamecontrol/网站。[2016年12月16日访问]。[18] 帕卢卡湖Simple multi-touch:A framework for teaching multi-touchcomputing,Poster,2011.[19] Wikipedia,space navigator,URLhttps://en.wikipedia.org/wiki/3Dconnexion. [在线; 2016年8月17日访问]。[20] kernel.org,编程输入驱动程序,2013年。https://www.kernel.org/doc/Documentation/input/input-programming.txt.[在线; 2013年7月7日访问]。[21] Charalambos JP. Prosene API文档,URLhttp://remixlab.github.io/prosene-javadocs。[22] 张文龙,张文龙,张文龙. GWT在行动第2版,Greenwich,CT,USA:ManningPublications Co.; 2013年。[23] 杨伟杰,王伟杰,王伟杰.catmull的参数化及其应用ROM曲线。Comput Aided Des 2011;43(7):747http://dx.doi.org/10.1016/j.cad.2010.08.008网站。[24] 德邦湾LibQGLViewer,2016. http://libqglviewer.com网站。[2016年5月16日访问]。[25] 查孔湾Pro Git.1st ed.Berkely,CA,USA:Apress; 2009.[26] Reynolds CW.羊群,牛群和学校:分布式行为模型。SIGGRAPH ComputGraph 1987;21(4):25-34. http://dx.doi.org/10.1145/37402.37406网站,URLhttp://doi.acm.org/10.1145/37402.37406网站。[27] 学 生 VC 。 Prosene 实 验 。 网 址 https://github.com/remixlab/proscene-experiments.[28] Maire J. Prosene教室。http://www.openprocessing.org/classroom/1158章.[29] Gomez AF,Colubri A,Charalambos JP.计算艺术与设计中的着色器编程--创造性编码框架的比较。第11届计算机视觉、成像和计算机图形理论与应用联合会议论文集。2016.第163- 170页。http://dx.doi.org/10.5220/0005678301610168网站。[30] 塞纳托雷湾推我拉我网址http://expeditionworkshed.org/workshed/push-me-pull-me-3d/.[31] 布莱克赫斯特J.刚刚造成2名球员死亡的影响。点云可视化。网址http://y2u.be/hEoxaGkNcrg。[32] 启发性的,万宝龙通过启发性的网址http://www.creativeapplications.net/processing/montblanc-processing/.[33] [10] McCarthy L,Eastmond E,Shiffman D,Johnson J,LavigneS. p5.js. 网址https://p5js.org/。[34] 张文辉,张文辉.处理Android。网址http://android.processing.org/。
下载后可阅读完整内容,剩余1页未读,立即下载
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 利用迪杰斯特拉算法的全国交通咨询系统设计与实现
- 全国交通咨询系统C++实现源码解析
- DFT与FFT应用:信号频谱分析实验
- MATLAB图论算法实现:最小费用最大流
- MATLAB常用命令完全指南
- 共创智慧灯杆数据运营公司——抢占5G市场
- 中山农情统计分析系统项目实施与管理策略
- XX省中小学智慧校园建设实施方案
- 中山农情统计分析系统项目实施方案
- MATLAB函数详解:从Text到Size的实用指南
- 考虑速度与加速度限制的工业机器人轨迹规划与实时补偿算法
- Matlab进行统计回归分析:从单因素到双因素方差分析
- 智慧灯杆数据运营公司策划书:抢占5G市场,打造智慧城市新载体
- Photoshop基础与色彩知识:信息时代的PS认证考试全攻略
- Photoshop技能测试:核心概念与操作
- Photoshop试题与答案详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)