APP下载

编织网格模型处理及管理系统研究

2021-04-18郭梓帆

甘肃科技纵横 2021年1期

郭梓帆

摘要:编织网格模型处理系统为服装建模提供了良好的接口,本系统基于Java语言开发了一个管理平台,将编织网格建模系统复杂的操作界面对用户透明化,避免用户手动执行每一个处理步骤,实现一键完成模型的处理。同时屏蔽了该系统额外的参数控制和其他功能菜单,只保留了核心功能,即模型处理的功能接口。系统还利用数据库技术实现权限控制和用户管理,同时也对每个用户的源模型文件和目标模型文件两种obj模型文件进行管理,简化用户的操作。本系统是基于B/S架构,采用SpfingBoot框架作为后台,MySQL作为数据库,layui框架作为前端界面简洁友好,让用户更加方便地使用编织网格建模系统。

关键词:Java;springBoot;MySQL;文件管理

中图分类号:TP311.1 文献标志码:A

0引言

服装建模技术应用广泛,例如CAD服装设计、电影和游戏等领域都常常涉及到这个课题。编织服装在我们日常生活中很常见,从袜子、裤子和T恤到冬季的毛衣和配饰,除此之外,编织服装在电影和游戏中也很常见。目前在计算机图形学中,编织网格为编织服装造型提供了强大的接口,在编织网格建模框架的改进系统中,将3D模型文件作为输入,最终自动生成拓扑有效的编织网格模型。得到的编织网格模型通过松弛处理后可用于具有纱线模拟的计算机图形应用或者可以直接使用3D打印机在现实中打印出实物。该系统也可以处理任何三维物体模型,模拟出该三维物体表面的编织网格模型,进而生成纱线级模型。

但是该系统操作繁琐,使用时需要用户依次手动点击每一个处理步骤的按钮,而且处理模型的某一些步骤需要等待的时间较长,用户的体验感不好。同时,用户界面还有一些额外的参数控制、功能菜单等,这些都是普通用户不需要关注的;对于需要进行处理的文件,该系统每次只能通过上传单个文件,并且处理过后,也无法指定输出文件的保存位置;同时,每次处理完一个模型文件后,必须重启该程序,才能进行下一个模型文件的处理,否则会出现较为严重的错误,无法得到用户需要的目标模型文件。

基于上述问题,我们期望将编织网格模型处理系统作为后台系统部署到云服务器上,开发一个B/S架构的界面友好的前台系统,提供输入与输出模型文件的管理功能以及模型处理的接口,简化用户的操作,方便用户使用。

1相关技术

1.1SSM框架

SSM框架是由spring框架、SpringMVC框架和MyB—atis框架集成组成的框架,是目前主流JavaEE框架,适用于搭建各种企业级应用系统。

Spring是一个Java框架,核心是控制反转(Ioc)和依赖注入(DI)功能。基于POJO(Plain ordinary JavaObject)编程,所有组件、方法等都作为Bean注入,利用此机制具有不需要在每次使用某个类时进行初始化,避免使用new关键字等特点。

MVC是指Model(模型)、View(视图)、Controller(控制器),是一种软件设计的架构模式,它通过将业务层、控制器层、模型层分离开来,从而降低系统的耦合度。SpringMVC是一款MVC框架,它与Spring具有良好的兼容性。其中,DispatcherServlet(前置控制器)是它的核心之一,其功能是在收到不同的请求时将其发送到对应的处理器。SpringMVC可以采用基于注解的形式进行配置和开发,减少代码量。

MyBatis是一款持久层框架。在传统的JDBC代码,首先要获取驱动,然后获取数据库连接,从数据库中取出数据时要修改格式,操作完成后还要关闭连接等等,MyBatis可以大大减少这些代码。MyBatis提供映射方式,可以自己编写sq]语句,并将一些输入参数进行自动映射,具体的方式是使用XML或者是注解来进行配置和映射。

1.2 SpringBoot

Spring框架不断发展壮大,现在进行框架搭建、项目整合开发需要配置很多文件,使用起来有些麻烦。Spring Boot是一个基于spring开发的框架,本身不提供Spring框架的核心特性和扩展功能,只用于快速、敏捷开发新一代基于Spring框架的应用程序。它以“约定大于配置”的核心思想,有大量的默认设置,同时还集成了常用的第三方库配置,只需要按照其约定的规范来开发,就可以减少配置的工作,基本实现零配置的开箱即用。

1.3 MyBatis-Plus

MyBatis-Plus是对MyBatis的一个增强工具,内置通用的Mapper、Service等,只需要少量配置就可以实现基本的表单CRUD操作,对复杂的查询语句,也可以通过条件构造器来完成。内置了代码生成器,可以快速生成控制器、业务层、实体类、DAO层的代码。内置分页插件,基于MyBatis的物理分页,只需要配置好插件后,分页查询便与普通的List查询基本没有区别。

1.4 MySQL数据库

本論述实现的系统使用MySQL来管理数据,它是一个关系型数据库,使用标准化语言SQL,对用户开放源代码并且完全免费使用。MySQL作为中小型数据库,性能优良,可以满足本系统实现的各种功能需求。

MySQL特点:

(1)提供支持多种语言连接操作的接口。

(2)提供多种存储引擎,支持事务、存储过程和触发器等。

(3)研发语言使用C和c++,支持多种操作系统,包括Windows、Linux、Unix等,方便移植。

(4)提供了多种数据库连接方式,如JDBC以及TCP/IP等。

(5)体积小、速度快,管理工具操作简单,适合轻量级系统。

1.5 Ajax

传统的JavaWeb程序中,用户点击前端页面的按钮向后台服务器发送http请求,服务器调用相关的处理程序处理http请求,将结果返回给用户时,需要返回整个页面(html、jsp等),因此想要提交表单或是更新内容时,都需要重新加载整个网页。

使用Ajax技术后,通过前端页面,将部分表单数据通过发送ajax请求给后台服务器,在后台进行少量的数据交换后,不再返回一个页面,而只是将一个数据集合返回前端页面就可以实现局部网页的更新。Ajax的核心是XMLHttpRequest对象(xHR),XHR为向服务器发送请求和解析服务器响应提供了接口,以异步方式从服务器获取新数据。

本系统的前后台交互基本上都是通过Ajax请求实现,因此控制器层不做页面的刷新(不返回model),只返回数据。

1.6 obi格式文件

obi文件是AliaslWavefront公司开发的一种标准3D模型文件格式,适用于3D软件中模型之间的互相传导,目前很多3D软件都支持obi文件的读写。

obi文件实际上是一种文本文件,定义了三维几何体的顶点、顶点索引、纹理坐标等信息,按行进行分割,格式如下:

前缀符号参数1参数2参数3(…)

其中前缀符号常用的有:

(1)v几何体顶点,后面参数代表顶点的x、y、z轴坐标。

(2)vt贴图坐标点,后面参数代表纹理坐标的值。

(3)vn顶点法线,后面参数代表法向量的x、y、z轴坐标。

(4)f面,参数代表构成该面的点的索引号。

1.7编织网格模型

编织网格结构是纱线级几何的抽象,大多数编织网格面是四边形,具有两个纵行wale边和两个横向course边,这些边分别与纵向wale编织方向和横向course编织方向一致。整个模型是按照如下方式进行排列的:每个网格面沿course编织方向并排放置,形成行,沿着wale编织方向连接连续的行。

2需求分析

2.1 obi文件管理需求分析

用户在使用模型处理系统时,需要选择源模型文件进行输入,同时将处理后得到的目标模型文件进行保存。因此需要实现一个文件保存及管理的功能,为不同的用户建立独立的源模型文件存储区和目标模型文件存储区,并且提供文件上传和文件下载的功能,同时还有对模型文件进行修改、删除等操作的管理功能。用户在登录系统后应当只能看到属于当前用户的文件,并且可以对这些文件进行相关操作。

2.2模型处理功能需求分析

在实现obi文件管理功能的基础上,提供编织网格模型处理系统的功能接口。当用户选择某个文件进行处理时,向服务器发送请求,在服务器后台调用具体的处理程序,然后按照各个步骤对输入的源模型文件进行处理,完成后将目标模型文件保存到当前用户的目标模型文件管理区,然后返回操作是否成功的提示信息。用户可以同时选择多个文件进行处理,此时会生成处理队列,依次对队列中的文件进行处理和保存。处理过程对用户透明,用户只需要等待一定的时间后,就可以在相应的文件管理区管理和下载自己的目标模型文件。

2.3系统权限控制管理功能需求分析

系统还需要实现一些基本的功能,例如用户管理、登录及注销、权限控制等功能。编织网格模型处理系统提供了一些高级功能,例如对模型处理过程中一些例如向量场等参数的调整,但是这些功能应该是面向高级用户的,对于普通用户这部分功能是不可见的。所以应该对用户的权限进行戈Ⅱ分和控制,在用户登录时进行认证和授权,让用户只能看到和使用该用户权限等级所拥有的菜单功能。

3系统设计与实现

3.1功能模块划分

本系统的功能模块图如图1所示。

3.2 obi文件管理

根据源模型文件与目标模型文件的不同,将这两部分的文件管理划分到两个不同的页面。其中,源模型文件管理界面,如图2所示。其中页面主要分为上下两个部分。上部分是提供条件查询功能的表单组件,可以根据文件名进行模糊查询,或者根据设置时间段条件来查询在该时间段内上传的源文件。下部分是一个数据表格组件,分页显示每个文件的ID、文件名称、文件大小和创建日期,同时提供了表格头部工具栏和行工具栏。行工具栏可以对文件的各个信息进行修改或者删除某个文件。头部工具栏包含了文件上传和模型处理两个功能。文件上传主要是用了layui的upload组件,选择完文件后不会立即上传,会在选择文件按钮后显示出文件名称,点击右方的开始上传后才会真正将文件上传到服务器的文件存储区中。

为了实现方便,本系统没有将文件直接存储到数据库中,而是为每一个用户建立一个用户存储区,然后在数据库中存储的是文件的名称、大小、存放路径、创建时间、文件类型、所属用户等信息。

目标模型文件管理页面中,数据表格的头部工具栏只提供了文件下载的功能,其他部分与源模型文件管理页面基本一致,故不再叙述。

3.3模型处理功能

这个功能组合在源文件管理页面中。当通过数据表格中数据项的复选框选中某个源文件后,点击模型处理按钮,此时会发送请求到服务器后台。编织网格模型处理系统是使用c++语言实现的,编译成exe程序后,在后台控制器中使用iava.lang包中的Runtime类调用该程序,然后按请求中包含的文件信息在磁盘存储区中找到对应文件,利用编写好的脚本程序将该文件传递给编织网格模型处理系统,完成所有步骤后将得到的目标模型文件存放到用户的目标文件存储区中,然后从后台控制器返回操作提示信息给前端页面。当操作成功时,用户便可在目标文件管理中查看到经处理得到的编织网格模型文件,同时可以进行下载。

3.4系统管理功能

本系统的权限控制功能,通过五张数据库表(用户表、角色表、权限表、用户角色关系表、角色权限关系表),以这样的流程进行:给角色分配权限,然后再给用户分配角色从而获得该角色所对应的权限。本系统主要有三种角色,分别为普通用户,高级用户和系统管理员。

分配权限功能使用layui的dTree组件,添加了一个复选框。当点击分配权限按钮——将sys_permission表下的所有数据用dtree树组件显示,查询当前角色已经拥有哪些权限/菜单,已有的菜单,权限默认选中。在分配权限时,为了防止在角色一权限表sys_role_permission中又加入同样的数据,做这样的处理:先删除该角色原先拥有的权限,再把当前分配选中的权限重新添加进角色一权限关系表。用户管理中给用户分配角色,实现方法与给角色分配权限基本一致,需要改变的是查询另一张用户角色关系表sys_role_user。

4总结及展望

本系统用SpringBoot框架和Layui框架搭建了一个Web平台,目的是为了与编织网格模型处理系统实现良好的对接,屏蔽掉复杂的操作细节,只保留必要的操作功能接口,同时通过为用户建立磁盘存储区和使用MySQL数据库存储文件索引信息,实现了对每个用户的源文和目标文件管理,简化了obi文件的管理和操作,方便用户使用。

但是本系统还存在着一些不足之处,例如,虽然将繁琐的操作透明化,用户不再需要手动操作每个处理步骤,而是一键即可生成编织网格模型,但是同时对三维模型的初始形状和每个步骤完成后的变化的的渲染显示,也对用户屏蔽了。同时本系统实际上用的还是后台管理界面的风格,界面比较单一。日后可以开发更加多样化的前端界面,并且为有需要的用戶提供图形渲染显示功能,给用户以更好的体验。