CN101877144A - 虚拟图书馆海量图书三维立体建模方法 - Google Patents
虚拟图书馆海量图书三维立体建模方法 Download PDFInfo
- Publication number
- CN101877144A CN101877144A CN2009103105875A CN200910310587A CN101877144A CN 101877144 A CN101877144 A CN 101877144A CN 2009103105875 A CN2009103105875 A CN 2009103105875A CN 200910310587 A CN200910310587 A CN 200910310587A CN 101877144 A CN101877144 A CN 101877144A
- Authority
- CN
- China
- Prior art keywords
- books
- library
- book
- virtual
- bookshelf
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明提供一种虚拟图书馆海量图书三维立体建模方法,包括建立图书目录数据库数据增长模型、根据图书目录数据库数据增长模型实现图书目录数据的实时动态同步排架以及“图书级”虚拟现实场景模型建立,其中“图书级”虚拟现实场景模型建立包括扫描、登记实体图书资料;根据单册图书图片和图书基本属性,建模生成单册图书模型;逐个生成每本图书,从而形成图书模型数据库;结合图书排架信息、典藏信息、图书状态和图书基本属性,通过虚拟现实技术依次展示出图书馆图书、物理典藏地点书架、物理典藏地点虚拟现实场景;最后形成图书馆总体的虚拟现实场景。
Description
技术领域
本发明涉及一种建模方法,特别是用于虚拟图书馆海量图书三维立体建模方法。
背景技术
随着全球网络数字化技术的发展和数字资源的快速发展,许多高校都建立了数字化图书馆,其发展成多种媒体资源、多种***平台并行运行和多种服务方式共存的开放式和高复杂度的综合***。
然而,目前全球具有代表性、寥寥可数的高校图书馆虚拟展示介绍都是基于2D形式来表现的。读者只能从2D查询***中获得图书所在的书架位置,不能自由地选择观察点,更不能在3D环境下获取有关图书的封面图片、侧立面、书名、页码及内容等其它信息,因而限制了读者获取文献信息资源的方式。
发明内容
本发明解决的技术问题是提供一种虚拟图书馆海量图书三维立体建模方法。
本发明解决上述技术问题的技术方案是一种虚拟图书馆海量图书三维立体建模方法,包括建立图书目录数据库数据增长模型、根据图书目录数据库数据增长模型实现图书目录数据的实时动态同步排架以及“图书级”虚拟现实场景模型建立,其中“图书级”虚拟现实场景模型建立包括扫描、登记实体图书资料;根据单册图书图片和图书基本属性,建模生成单册图书模型;逐个生成每册图书,从而形成图书模型数据库;结合图书排架信息、典藏信息、图书状态和图书基本属性,通过虚拟现实技术依次展示出图书馆图书、物理典藏地点书架、物理典藏地点虚拟现实场景;最后形成图书馆总体的虚拟现实场景。
相较于现有技术,本发明虚拟图书馆海量图书三维立体建模方法具有“图书级”的虚拟现实,是以图书为单元进行三维立体建模,实现了在架图书的立面、封面、目录和内容的虚拟现实阅读,最大程度地虚拟了读者在图书馆真实环境中发生的行为,从而建立真正意义上的虚拟现实图书馆,从根本上解决了图书馆图书资料的一体化管理,形成一个全面和***的一站式服务机制。另外,采用“一次建模,N次纹理贴图”的数学方法,有效地解决了海量目录数据生成三维虚拟图书所需要的巨大数据量而形成的突出矛盾。另外,建立图书目录数据在虚拟现实情景数据库中的同步映射关系,实现图书目录数据在双数据库中的同步映射,进而解决动态数据传递、共享与融合等问题。另外,通过建立虚拟现实情景数据库与图书馆自动化集成管理***中图书目录数据库的无缝对接,并结合自动排架***、局部倒架算法以及相关数据库的操作函数,实现图书排架的自动更新与实时动态同步,从而确保图书排架信息库而生成的虚拟现实场景和图书馆物理馆藏的图书保持一致性。
附图说明
图1是本发明虚拟现实图书馆的海量图书立体建模快速生成方法的基于虚拟现实的图书排架示意图。
图2是本发明虚拟现实图书馆海量图书立体建模快速生成方法的图书虚拟现实场景数据流程图。
图3是本发明虚拟现实图书馆海量图书立体建模快速生成方法部分虚拟书架场景图。
图4是本发明虚拟现实图书馆海量图书立体建模生成方法的基于虚拟现实技术的图书馆***平台层次结构。
图5是本发明虚拟现实图书馆海量图书立体建模快速生成方法原理框图。
图6是本发明虚拟现实图书馆海量图书立体建模快速生成方法中单册图书立体建模的流程示意图。
图7是本发明虚拟现实图书馆海量图书立体建模快速生成方法的图书封面图片及切片图片示意图。
图8是本发明虚拟现实图书馆海量图书立体建模快速生成方法的虚拟现实***生成虚拟书与排架流程图。
图9是本发明虚拟现实图书馆海量图书立体建模快速生成方法的虚拟现实***自动排架程序流程图。
图10是本发明虚拟现实图书馆海量图书建模快速生成方法的图书新书上架排架流程图。
图11是本发明虚拟现实图书馆海量图书建模快速生成方法的图书分馆异动排架流程图。
具体实施方式
本发明虚拟图书馆海量图书三维立体建模方法包括建立图书目录数据库数据增长模型、实现目录数据的实时动态同步排架以及“图书级”虚拟现实场景模型建立。
(一)建立图书目录数据库数据增长模型
图书目录,包含图书的基本信息,并按一定得顺序编排而成。不同的图书馆图书目录数量从几十万条到几百万条不等。
图书目录数据库增长规律直接影响着图书目录数据在虚拟现实图书馆中的同步数据更新,建立目录数据库数据增长模型可直接服务于同步排架问题。
根据图书目录数据库更新的目录数据在每学年的增长规律符合任一单位时刻图书目录数据的增长率与当时的目录数据总量成正比的假设,并且图书目录数据与每学年度月份的离散数据分布相吻合。于是,设每学年度任一单位时间为t时刻的目录数据总量为N(t),则单位时间内目录数据的增长量为:
根据基本假设可得:
其中,k为常数,当Δt→0,可得微分方程:
由于同步影响目录数据库数据增长的主要因素来自图书供应商供应图书时间的不确定性和图书招标后供应时间的阶段性,而上述两个因素又取决于其他诸多因素直接影响了上式微分方程求解的特解,为化简起见,影响目录数据与同步映射数据增长的其他等因素设为常数,所示微分方程的特解为目录数据库目录数据增长规律,如下式:
N(t)=N0 e r(t-t0)
假设t=t0时的目录数据总量为N0,当0=t<7时t:=t。
目录数据离散分布与目录数据增长模型检验,目录数据库自然增长在每学年第一学期9月至第二年1月的增长规律与本模型增长规律拟合效果较好,符合第一个正态分布。
当9=t=12,t:=t-7。
第二学期1月到7月为第二个正态分布周期。由于高校图书馆采编部门的工作规律与本模型有较好的拟合度,选择目录数据库数据增长模型为虚拟现实图书馆同步映射数据提供直接支撑。
虚拟现实图书馆与目录数据库之间的数据调用及同步映射对图书馆优化管理与提供真正意义上的一站式服务是非常必需的。建立目录数据库增长模型是实现***间数据共享与同步映射的关键问题之一。
(二)实现图书目录数据的实时动态同步排架
为实现图书目录数据的实时动态同步排架,需要建立虚拟现实情景数据库,提供书架和单册图书的三维建模所需的数据。如图(1),共有图书目录信息表BOOKMARC、位置信息表BOOKPOSITION和书架存放信息表BOOKSHELL三个数据表。
图书目录信息表的所有数据由图书自动化集成***的图书目录数据库实时传递,索取号为数据表的主键,一种书为一条记录,该表可向单册图书建模时提供所需的书名、作者、出版社及电子图书链接等数据。
位置信息表主要是记录单册图书的位置和单册信息,登录号、索取号及该册图书的借阅信息由图书馆自动化管理***的目录数据库实时传递,登录号为数据表的主键,一册书一条记录,该表可在书架建模时提供每册图书的位置信息和图书借阅信息。书架存放信息表是记录每一行书架排架信息,它的作用是帮助位置信息表确定每册图书所在的书架号和行号。
请参阅图1,是本发明虚拟现实图书馆的海量图书立体建模快速生成方法的基于虚拟现实的图书排架示意图。基于虚拟现实的图书排架基本原理叙述如下:
首先,根据书库图书总量和书架总量来测算出每行书架最适宜排放的图书册数。执行初始排架或执行倒架功能时,位置信息表里的所有记录将按索取号排序,并按每行最适宜排放的图书册数进行排架,确定每行书架索取号的起止号,进而生成书架存放信息表的所有数据。
其次,位置信息表里的每册图书根据其索取号在书架存放信息表里的位置获取其所在的书架号和行号,生成位置信息表里书架号和行号的数据。从而完成自动排架***对所有图书的定位,并依此确定每个书架或每一行书架有哪些图书,将其索取号排序,就可获得虚拟书库与真实排架相一致的情况。当***完成初始排架还没有执行倒架功能时,书架存放信息表里的数据是相对固定的,新购进的图书根据其索取号找到在书架存放信息表中排架位置,就可得到其书架号和行号信息写入位置信息表。
另外,***还可设计局部倒架功能,只需改变书架存放信息表里要倒架的几行书的索取号起止号,位置信息表里的每册图书再根据新的书架存放信息表更新其书架号和行号数据。
再有,为图书书架存放信息库BOOKSHELL并建立相关操作函数,实现目录数据的动态同步和图书排架。该库包含图书在书架中的排架信息和简明图书目录信息,主要用来为虚拟图书排架建模提供所需的相关数据。
图书书架存放信息库BOOKSHELL通过Z39.50和图书管理***进行数据同步,支持异构***。在数据同步的同时,根据书架的宽度和排架规则,实现自动排架和整架。图书书架存放信息库BOOKSHELL的动态更新通过图书管理***增加触发器主动推送服务和自动更新操作来完成。
确保通过图书排架信息库而生成的虚拟现实场景和物理馆藏图书相一致,读者就可以通过OPAC检索到某本书后,点击索取号或某个位置信息字段就可以获得摯幼呓际楣莸皆谑榧苌险业秸獗臼閿这个过程的虚拟情景。通过SFX将OPAC与每种图书的虚拟现实情景数据库进行链接时,可以利用856字段(Electronic Location and Access),将每种图书的虚拟现实情景文件的链接地址根据它的索取号倒入其856字段,从而将这种应用推广到所有类型的图书馆自动化集成管理***中。
图(1)中,首先通过连接图书馆自动化管理***中的图书目录数据库,实时传递图书单册的相关属性到目录信息表和位置信息表中;然后按照索取号的序列依次传递数据,并依据以上传递的数据,按索取号排序,并按每行固定的册数确定每行索取号的起止号,形成书架存放信息表,包括书架号、行号、索取号起和索取号止等信息;最后将此信息回写至位置信息表中。
(三)“图书级”虚拟现实场景模型建立
请参阅图2,是本发明虚拟现实图书馆海量图书立体建模快速生成方法的“图书级”虚拟现实场景数据流程图。首先根据单册图书图片和图书基本属性,建模生成单册图书模型,然后逐个生成每册图书,从而形成图书模型数据库;在此基础上,结合图书排架信息、典藏信息、图书状态和图书基本属性,通过虚拟现实技术依次展示出图书馆图书、物理典藏地点书架、物理典藏地点虚拟现实场景;最后形成图书馆总体的虚拟现实场景。如图3所示,是部分虚拟书架场景图。
其算法实现过程如下:
package com.jspdev.ch13;
import com.jspdev.util.*;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import oracle.jdbc.driver.OracleResultSet;
import oracle.sql.*;
public class bookshell
{
Connection conn;
public bookshell()throws Exception
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn=DriverManager.getConnection(“
jdbc:oracle:thin:system@localhost:1521:shitou”
,”system”,”manager”);
}
public void bookshellint()throws Exception
{
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(SELECT Bookshell_no,Row,Col,
callno_first,callno_end FROM bookposition)
Boolean More=rs.next()
while(rs.next())
{
Int Bookshell_no_n=rs.getint(“Bookshell_no”)
int Row_n=rs.getint(“Row”)
int Col_n=rs.getint(“Col”)
String callno_first_n=rs.getstring(“callno_first”)
String callno_end_n=rs.getstring(“callno_end”)
String query=”update bookshell set bookshell_no=Bookshell_no_n,col=
Col_n,row=row_n where Call_no>=callno_first_n and call_no<=callno_end_n”;
Stmt.execute(query);
More=rs.next()
}
Conn.close();
}
}
请参阅图4,是本发明虚拟现实图书馆海量图书立体建模生成方法的基于虚拟现实技术的图书馆***平台层次结构。基于虚拟现实技术的图书馆应用***的层次结构主要由硬件基础层、***软件层、数据层、应用层和表现层组成,为虚拟现实技术在图书馆业务***提供有效的应用环境。在这样一个应用环境中,根据虚拟现实技术场景的人参与并与之交互的特点,通过人机交互,读者可以直接从虚拟现实的图书排架环境连接图书馆自动化集成管理***,查阅纸质图书、预借纸质图书和浏览电子图书,实现虚拟现实图书馆与图书馆自动化集成管理***的无缝对接和基于虚拟现实技术的可视化图书馆自动化集成管理***的应用。
请参阅图5,是本发明虚拟现实图书馆海量图书立体建模快速生成方法原理框图。其包括以书名、开本和页数等这些图书自动化管理***均可以提供的信息以及电子图书为基础,融合了图书基本三维立体架构快速建模和矩阵队列、立面切割生成法、快速实时同步排架法及基于Z39.50、SIP2等协议的基础数据传递函数等算法,并基于人眼的生理特性而形成的一整套海量图书立体建模方法,从而在Web上虚拟实现读者查阅与浏览书架、取阅和预定借阅图书等行为。
请参阅图6,是本发明虚拟现实图书馆海量图书立体建模快速生成法中单册图书立体建模的流程示意图。其包括:首先从图书馆自动化集成管理***的目录数据库中获取图书开本、页码的数据,并换算成图书立体模型的长、宽、厚尺寸,生成类似图书形状的三维长方体模型。然后从图书馆自动化集成管理***可获取图书封面的图片文件,贴在图书立体模型正面;图书立体模型的侧面从封面图片中选取部分切片作为背景,中间位置调用来自目录数据库的书名、作者、出版社的数据,模拟图书书脊的形状;图书立体模型的顶面为白色的图片。从而形成单册图书的三维立体模型。
单册图书立体建模算法实现如下:
package com.jspdev.ch13;
import com.jspdev.util.*;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import oracle.jdbc.driver.OracleResultSet;
import oracle.sql.*;
public class bookshell
{
Connection conn;
public bookshell()throws Exception
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn=DriverManager.getConnection(“
jdbc:oracle:thin:system@localhost:1521:shitou”
,”system”,”manager”);
}
public void bookshellfind(int i,int j,int k)throws Exception
{
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(select
rec_key,title,author,publisher,page,Lsizeofbook,
Ksizeofbook from Bookshell where bookshell_no=i and row=j and col=k)
If (rs.next())
{
Int ctrlno=rs.getint(“rec_key”)
String title_n=rs.getstring(“title”)
String publisher_n=rs.getstring(“publisher”)
String author_n=rs.getstring(“author”)
Int page_n=rs.getint(“page”)
Int long_n=rs.getint(“Lsizeofbook”)
Int kuan_n=rs.getint(“ksizeofbook”)
Len=len+page/250
CreateBookshelf(0,ctrlno,len,long_n,kuan_n)
}
Conn.close();
}
}
虚拟现实单册图书立体显示算法:
a.建立图书模型算法
vrGeometry CVirtualLibrary::CreateOneBook(float len,float w,float h,float r,float g,float b)
{
m_geometry[0]=new vrGeometry();
m_geometry[0]->setPrimitive(vrGeometry::PRIMITIVE_QUAD);
m_geometry[0]->setNumPrimitives(6);
m_geometry[0]->setNormals(normal,vrGeometry::BINDING_VERTEX);
m_geometry[0]->setTextureCoords(texCoord);
vuVec4<float>*color=vuAllocArray<vuVec4<float>>::malloc(1);
color[0].set(r,g,b,1.0f);
m_geometry[0]->setColors(color,vrGeometry::BINDING_OVERALL);
vuVec3<float>*vertex=vuAllocArray<vuVec3<float>>::malloc(24);
vertex[0].set(-0.5*h,0.5*w,0.5*len);
vertex[1].set(-0.5*h,0.5*w,-0.5*len);
vertex[2].set(-0.5*h,-0.5*w,-0.5*len);
vertex[3].set(-0.5*h,-0.5*w,0.5*len);
vertex[4].set(0.5*h,-0.5*w,0.5*len);
vertex[5].set(0.5*h,-0.5*w,-0.5*len);
vertex[6].set(0.5*h,0.5*w,-0.5*len);
vertex[7].set(0.5*h,0.5*w,0.5*len);
vertex[8].set(-0.5*h,-0.5*w,0.5*len);
vertex[9].set(-0.5*h,-0.5*w,-0.5*len);
vertex[10].set(0.5*h,-0.5*w,-0.5*len);
vertex[11].set(0.5*h,-0.5*w,0.5*len);
vertex[12].set(0.5*h,0.5*w,0.5*len);
vertex[13].set(0.5*h,0.5*w,-0.5*len);
vertex[14].set(-0.5*h,0.5*w,-0.5*len);
vertex[15].set(-0.5*h,0.5*w,0.5*len);
vertex[16].set(-0.5*h,-0.5*w,-0.5*len);
vertex[17].set(-0.5*h,0.5*w,-0.5*len);
vertex[18].set(0.5*h,0.5*w,-0.5*len);
vertex[19].set(0.5*h,-0.5*w,-0.5*len);
vertex[20].set(-0.5*h,0.5*w,0.5*len);
vertex[21].set(-0.5*h,-0.5*w,0.5*len);
vertex[22].set(0.5*h,-0.5*w,0.5*len);
vertex[23].set(0.5*h,0.5*w,0.5*len);
m_geometry[0]->setVertices(vertex);
}
b.单本图书立体显示算法
void CVirtualLibrary::ShowOneBook(float len,float w,float h,int ctrlno)
{
itoa(ctrlno,dirno,10);
onebook=CreateOneBook(len,w,h);
vuVec2<float>*texCoord=vuAllocArray<vuVec2<float>>::malloc(24);
int i;
for (i=0;i<6;i++){
texCoord[i*4].set(0.0f,1.0f);
texCoord[i*4+1].set(0.0f,0.0f);
texCoord[i*4+2].set(1.0f,0.0f);
texCoord[i*4+3].set(1.0f,1.0f);
}
vrTextureFactory*textureFactory=new vrTextureFactory();
m_texture=textureFactory->read(path/&dirno&’1.jpg’);
if(m_texture!=NULL)m_texture->ref();
m_textureElement.m_enable[0]=true;
m_textureElement.m_texture[0]=m_texture;
textureFactory->unref();
m_textureBlend=new vrTextureBlend();
m_textureBlend->setColorMode(vrTextureBlend::MODE_MODULATE);
m_textureBlend->setColor(1.0f,1.0f,1.0f,1.0f);
m_textureBlend->ref();
m_textureBlendElement.m_textureBlend[0]=m_textureBlend;
vuVec2<float>*texCoord=vuAllocArray<vuVec2<float>>::malloc(24);
int i;
for (i=0;i<6;i++){
texCoord[i*4].set(0.0f,1.0f);
texCoord[i*4+1].set(0.0f,0.0f);
texCoord[i*4+2].set(1.0f,0.0f);
texCoord[i*4+3].set(1.0f,1.0f);
}
vrTextureFactory*textureFactory=new vrTextureFactory();
m_texture=textureFactory->read(path/&dirno&’2.jpg’);
if(m_texture!=NULL)m_texture->ref();
m_textureElement.m_enable[0]=true;
m_textureElement.m_texture[0]=m_texture;
textureFactory->unref();
m_textureBlend=new vrTextureBlend();
m_textureBlend->setColorMode(vrTextureBlend::MODE_MODULATE);
m_textureBlend->setColor(1.0f,1.0f,1.0f,1.0f);
m_textureBlend->ref();
m_textureBlendElement.m_textureBlend[0]=m_textureBlend;
}
由于图书自动化集成***里没有图书立面的图片文件,我们采用模拟图书真实立面的方法来生成图书三维立体模型的侧面,即图书立面切割算法。根据图书的立面大多与封面左侧图形相近的特点,在图书封面左侧切取一条宽度为图书厚度的图片作为图书立面的背景,然后调用图书自动化集成***目录数据库里的书名、作者、出版社信息,竖向分布于图书立面。调用从图书馆自动化管理***中获取的书名、出版社、作者等信息,分别形成不同的文本图层,然后与背景层合并,形成图书立面图片。
请参阅图7,是图书封面图片及切片图片示意图。根据图书的立面大多与封面左侧图形相近的特点,在图书封面左侧切取一条宽度为图书厚度的图片(如1.5cm)作为图书立面的背景,然后调用图书自动化集成***书目数据库里的书名、作者、出版社信息,竖向分布于图书立面。调用从图书馆自动化管理***中获取的书名、出版社、作者等信息,分别形成不同的文本图层,然后与背景层合并,形成图书立面图片。
其中,书架图书的立面显示算法包括:
vrGeometry CVirtualLibrary::CreateBookshelf(int shelfid,int ctrlno,float
len,float w,float h)
{
onebook=CreateOneBook(len,w,h);
lpszText=title_n
ShowStringBitmap(LPCTSTR lpszText,HFONT hFont,BOOL bUseDisplayList)
lpszText=author_n
ShowStringBitmap(LPCTSTR lpszText,HFONT hFont,BOOL bUseDisplayList)
vuVec2<float>*texCoord=vuAllocArray<vuVec2<float>>::malloc(24);
int i;
for (i=0;i<6;i++){
texCoord[i*4].set(0.0f,1.0f);
texCoord[i*4+1].set(0.0f,0.0f);
texCoord[i*4+2].set(1.0f,0.0f);
texCoord[i*4+3].set(1.0f,1.0f);
}
vrTextureFactory*textureFactory=new vrTextureFactory();
m_texture=textureFactory->read(path/&dirno&’logo.jpg);
if(m_texture!=NULL)m_texture->ref();
m_textureElement.m_enable[0]=true;
m_textureElement.m_texture[0]=m_texture;
textureFactory->unref();
m_textureBlend=new vrTextureBlend();
m_textureBlend->setColorMode(vrTextureBlend::MODE_MODULATE);
m_textureBlend->setColor(1.0f,1.0f,1.0f,1.0f);
m_textureBlend->ref();
m_textureBlendElement.m_textureBlend[0]=m_textureBlend;
}
int CVirtualLibrary::ShowStringBitmap(LPCTSTR lpszText,HFONT hFont,BOOL
bUseDisplayList)
{
CBitmap bitmap;
BITMAP bm;
SIZE size;
UCHAR*pBmpBits;
HFONT hOldFont;
HDC hdc=wglGetCurrentDC();
if(!hFont)//use default system font
{hFont=(HFONT)::GetStockObject(SYSTEM_FONT);
}
hOldFont=(HFONT)SelectObject(hdc,hFont);v
::GetTextExtentPoint32(hdc,lpszText,strlen(lpszText),&size);
bitmap.CreateBitmap(size.cx,size.cy,1,1,NULL);
HDC hMemDC=::CreateCompatibleDC(hdc);
if(hMemDC)
{
HBITMAP hPrevBmp=(HBITMAP)SelectObject(hMemDC,bitmap);
HFONT hPrevFont=(HFONT)SelectObject(hMemDC,hFont);
SetBkColor(hMemDC,RGB(0,0,0));
SetTextColor(hMemDC,RGB(255,255,255));
SetBkMode(hMemDC,OPAQUE);
TextOut(hMemDC,0,0,lpszText,strlen(lpszText));
//copy GDI bitmap to DIB
bitmap.GetBitmap(&bm);
size.cx=(bm.bmWidth+31)&(~31);
size.cy=bm.bmHeight;
int bufsize=size.cy*(((bm.bmWidth+31)&(~31))/8);v
pBmpBits=new UCHAR[bufsize];
memset(pBmpBits,0,sizeof(UCHAR)*bufsize);
struct{
BITMAPINFOHEADER bih;
RGBQUAD col[2];
}bic;
BITMAPINFO*binf=(BITMAPINFO*)&bic;b
binf->bmiHeader.biSize=sizeof(binf->bmiHeader);
binf->bmiHeader.biWidth=bm.bmWidth;
binf->bmiHeader.biHeight=bm.bmHeight;
binf->bmiHeader.biPlanes=1;
binf->bmiHeader.biBitCount=1;
binf->bmiHeader.biCompression=BI_RGB;
binf->bmiHeader.biSizeImage=bufsize;
binf->bmiHeader.biXPelsPerMeter=1;
binf->bmiHeader.biYPelsPerMeter=1;
binf->bmiHeader.biClrUsed=0;b
binf->bmiHeader.biClrImportant=0;
B&b.l1 P0 b
::GetDIBits(hdc,bitmap,0,bm.bmHeight,pBmpBits,binf,
DIB_RGB_COLORS);
SelectObject(hMemDC,hPrevBmp);
}
::DeleteDC(hMemDC);
SelectObject(hdc,hOldFont);
glPixelStorei(GL_UNPACK_ALIGNMENT,1);
GLuint displist=0;
if(bUseDisplayList)
{
displist=glGenLists(1);
glNewList(displist,GL_COMPILE);
glBitmap(size.cx,size.cy,0.0,2.0,size.cx+2.0f,0.0,pBmpBits);
glEndList();
}
glBitmap(size.cx,size.cy,0.0,2.0,size.cx+2.0f,0.0,pBmpBits);
delete pBmpBits;
return displist;
}
综上可得,从图书馆自动化管理***中获取图书页码、书名、作者和出版社等信息;结合图书封面图片,采用图书封面切割算法,形成图书封面图片切片;并依据封面图片,采用图书立面生成算法,形成图书立面图片;最后将以上图片存入图书图片库。
本发明虚拟现实图书馆海量图书实时同步快速排架算法包括:
(1)虚拟图书排架规则
利用基础目录数据传递函数,将从图书自动化***所获得的中图分类号、图书属性(页码、开本、封面、册数、图书出借状态等)、书架预留以及当前图书馆物理排架规则等信息进行计算,从而生成虚拟现实排架。
该算法需要考虑到实际排架的需要,例如流通书库的TP工业技术类图书更新快,书架预留需要多一些;A类马列、B类哲学等图书更新慢,书架预留较少;还有密集书库的排架策略、过刊室的排架策略和多媒体资料的排架策略等都不一样,可能需要引入多种算法来实现虚拟排架。
基于虚拟现实的图书排架***需要提供接口供OPAC***传输数据,例如图书登录号(条码号或者RFID号),通过数据的传输实现书架和书库的定位;同时该***需要提供接口与虚拟现实***交换数据,例如书架号,用于书架位置的实时导航,引导读者从当前位置移动到指定书架,获取图书。
其中,图书基础数据传递函数在现有协议基础上进行编程封装,包括建立虚拟环境所需的书目数据和图书馆自动化集成管理***的更新数据等。
A建立图书馆书架存放信息
bookshell(bookshell_no,row,col,rec_key,call_o,isbn_issn,barcode)库
库结构
Bookshell{
Bookshell_no,int; 书架号
Row,int; 书架排
Col,int; 书架列
Rec_key,int; 图书控制号
Call_no,char(30); 图书索取号
isbn_issn,char(20); isbn或ISSN号
barcode,char(10); 图书条码号
title,varchar2(100) 题名
author,varchar2(100) 著者
pubisher,char(40) 出版社
Volume,char(20) 部次号
CLC,char(20) 中图分类号
Page,int 页码
lSizeofbook,int 开本(长)
kSizeofbook,int 开本(宽)
url1,varchar2(100) 书生电子图书链接
url2,varchar2(100) 超星电子图书链接
url3,varchar2(100) 附书光盘文件链接
summary,varchr2(255) 图书简介
content,varchr2(255) 图书目录
}
B图书位置库
bookposition(bookshell_no,row,col,callno_first,callno_end),存放物理书架索取号
库结构
Bookposition{
Bookshell_no,int; 书架号
Row,int; 书架排
Col,int; 书架列
callno_first,char(20); 起始索取号
callno_end,char(20) 末尾索取号
}
C书目库(新增和剔丢)bookadd(rec_key,call_o,isbn_issn,barcode)由推送进程生成
库结构
BookMARC{
Rec_key,int; 图书控制号
Call_no,char(30); 图书索取号
isbn_issn,char(20); isbn或ISSN号
barcode,char(10); 图书条码号
title,varchar2(100) 题名
author,varchar2(100) 著者
pubisher,char(40) 出版社
Volume,char(20) 部次号
CLC,char(20) 中图分类号
Page,int 页码
lSizeofbook,int 开本(长)
kSizeofbook,int 开本(宽)
url1,varchar2(100) 书生电子图书链接
url2,varchar2(100) 超星电子图书链接
url3,varchar2(100) 附书光盘文件链接
summary,varchr2(255) 图书简介
content,varchr2(255) 图书目录
booktype,char(4) 图书类型:新增;剔丢
}
D单册状态库bookstatus(rec_no,barcode,volume,status),由推送进程生成
库结构
Bookstaus{
Rec_key,int; 图书控制号
barcode,char(10); 图书条码号
Volume,char(20); 部次号
Place,char(40); 典藏地
Status,char(10); 图书状态
(2)基于图论网络流算法的海量数据更新与交换模型
面对海量图书和实时同步更新与交换数据,结合目录数据库数据增长规律N(t)=N0 er(t-t0),建立虚拟现实情景数据库与目录数据库数据流量平衡模型,以平衡(解决)目录数据库数据增量最大流问题映射到虚拟现实情景数据库能够获得最短时间问题。如何设计才能使得数据流量流动的量最大,数据流量映射需要一定时间,对于固定的数据流量,如何获得最短时间,这正是利用图论的网络流原理解决海量数据更新与交换问题。
在实际的数据交换中,假设G=(V,E)是一个数据交换的有向图,X与Y是V的两个非空不相交子集,其中X的顶点只有出弧而没有入弧,即只有流出而没有流进;Y的顶点则只有入弧而没有出弧,即只有流进而没有流出,X与Y分别称为G的发点集与收点集。I为G的中间点集,其顶点为中间点。
定义c为边E上的非负函数,称为容量函数,假设N=(V,E,c,X,Y)是数据更新与交换网络,记弧vivj上的单位时间tij,数据流量为fij,容量为cij,vx为发点,vy为收点,fmax是数据更新与交换的最大流,则建立最短时间最大流量问题的数学规划模型为:
0≤fij≤cij(vi,vj∈V)
上述模型需要同时满足以下的容量约束条件:
对所有中间节点vi∈V,由于其流入的总量应等于其流出的总量,于是有
而对于发点vx和收点vy,其流出与流入的量显然是目录数据从目录目录数据库映射到虚拟现实情景数据库的总流量,于是有:
因此,根据上述建立的数学规划模型,可借助c语言程序求解得到最大流量。
#include″stdio.h″
void main()
{int a,b,i,j,k,p,n,B[10][10],C[10][10],D[10][10],P[10][10][10];
printf(″please input n:\n″);
scanf(″%d″,&n);
printf(″please input C[%d][%d],B[%d][%d]:\n″,n,n,n,n);
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
scanf(″%7d,%7d″,&C[i][j],&B[i][j]);
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
{D[i][j]=B[i][j];
for(k=0;k<=n;k++)
P[i][j][k]=0;
if(D[i][j]<100)
{P[i][j][i]=1;P[i][j][j]=1;}
}
for(k=0;k<=n;k++)
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
if(D[i][k]+D[k][j]<D[i][j])
{D[i][j]=D[i][k]+D[k][j];
for(p=0;p<=n;p++)
P[i][j][p]=P[i][k][p]P[k][j][p];
}
printf(″D[%d][%d]:\n″,n,n);
for(i=0;i<=n;i++)
{for(j=0;j<=n;j++)
printf(″%7d″,D[i][j]);
printf(″\n″);
}
a=C[1][3];b=B[1][3]*D[0][5];
printf(″a=%d,b=%d\n″,a,b);
B[1][3]=100;
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
{D[i][j]=B[i][j];
for(k=0;k<=n;k++)
P[i][j][k]=0;
if(D[i][j]<100)
{P[i][j][i]=1;P[i][j][j]=1;}
}
for(k=0;k<=n;k++)
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
if(D[i][k]+D[k][j]<D[i][j])
{D[i][j]=D[i][k]+D[k][j];
for(p=0;p<=n;p++)
P[i][j][p]=P[i][k][p]P[k][j][p];
}
printf(″D[%d][%d]:\n″,n,n);
for(i=0;i<=n;i++)
{for(j=0;j<=n;j++)
printf(″%7d″,D[i][j]);
printf(″\n″);
}
a=a+C[1][2];b=b+D[0][5];
printf(″a=%d,b=%d\n″,a,b);
B[0][1]=100;B[1][2]=100;B[4][3]=100;
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
{D[i][j]=B[i][j];
for(k=0;k<=n;k++)
P[i][j][k]=0;
if(D[i][j]<100)
{P[i][j][i]=1;P[i][j][j]=1;}
}
for(k=0;k<=n;k++)
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
if(D[i][k]+D[k][j]<D[i][j])
{D[i][j]=D[i][k]+D[k][j];
for(p=0;p<=n;p++)
P[i][j][p]=P[i][k][p]P[k][j][p];
}
printf(″D[%d][%d]:\n″,n,n);
for(i=0;i<=n;i++)
{for(j=0;j<=n;j++)
printf(″%7d″,D[i][j]);
printf(″\n″);
}
a=a+C[2][4]C[4][3];b=b+D[0][5];
printf(″a=%d,b=%d\n″,a,b);
B[2][4]=100;
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
{D[i][j]=B[i][j];
for(k=0;k<=n;k++)
P[i][j][k]=0;
if(D[i][j]<100)
{P[i][j][i]=1;P[i][j][j]=1;}
}
for(k=0;k<=n;k++)
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
if(D[i][k]+D[k][j]<D[i][j])
{D[i][j]=D[i][k]+D[k][j];
for(p=0;p<=n;p++)
P[i][j][p]=P[i][k][p]P[k][j][p];
}
printf(″D[%d][%d]:\n″,n,n);
for(i=0;i<=n;i++)
{for(j=0;j<=n;j++)
printf(″%7d″,D[i][j]);
printf(″\n″);
}
}
(3)基于人眼生理特性的排架显示规则
为了保证在局域网(校园网)环境下虚拟现实***的显示质量和显示速度,根据人眼的生理特性,排架显示遵循以下规则:
A多焦点显示:以每行书架的中间位置作为焦点,每列书架可以有多个焦点;焦点处的图书模型渲染粒度要求精细、焦点周围的图书模型渲染可降低要求;
B防疲劳显示:每行书架的图书模型渲染显示时,需进行分隔,例如每5本书采用一个特殊颜色的图书模型进行分隔,减少读者使用时的人眼疲劳。
C动态可调分辨率:根据实际显示画面的位置变动和放大缩小情况,实时动态调整画面显示分辨率。
(4)实时同步排架算法
A.图书处理的队列模型
定义图书的状态:书到达→真书上架→虚拟书上架。
a.真书上架:新书到达后进行编目,摘要,将目录数据输入管理数据库,再由工作人员将书放上图架。
b.虚拟书上架:在书完成上架后,由虚拟现实***生成虚拟书,虚拟书排架。
假设各操作的时间符合均匀分布,
设:真书上架时间为ΔA,虚拟书上架时间为ΔB。
设t0=0为初始时间,tk=tk-1+ΔA,在(t0,tk]时间内到达的书的数量为n(tk),每本书的处理时间为ΔA+ΔB,书籍的队列长L(tk),在(t0,tk]内待处理的书籍等待的总时间T1(tk),处理书籍的总时间为T2(tk)。
若L(tk)=0,n(tk)=0,此情况为没到书到达,相关人员处于空闲状态,L(tk)=L(tk-1),T1(tk)=T1(tk-1),T2(tk)=T2(tk-1)
否则将有一本书到达或已正在处理,其余书籍在队列中等待,即:
L(tk)=L(tk-1)+n(tk)-1,T1(tk)=T1(tk-1)L(tk)*t,
T2(tk)=T2(tk-1)+ΔA+ΔB,如图8所示。
请参阅图9,是虚拟现实***自动排架程序流程图。虚拟现实***需要定期对目录数据做同步性检验,以保证虚拟书架库与目录数据的一致性:如目录数据未更新或修改,则不更新虚拟书架库;如目录数据有更新,馆员可以选择手工上架图书或批量自动上架图书。虚拟书架库更新后,经图书馆馆员校验后,生成虚拟书,最后完成虚拟书架的生成。
结合图书馆的实际工作,图书馆需要定期进行图书剔旧和图书缺失处理;这时图书馆馆员可通过选择图书下架代理或批量下架来完成。虚拟书架库更新后,经图书馆馆员校验后,下架虚拟书,最后完成虚拟书架的修改。
请参阅图10,是本发明虚拟现实图书馆海量图书建模快速生成方法的图书新书上架排架流程图。首先扫描输入单册图书登入号,判断是否是单册新书。如果是,计算单册新书物理典藏地点并显示,接着判断该单册新书是否上架,是的话则进行新书单册所属物理典藏地点单行书架计算合成,接着进行图书馆物理典藏地点单排书架展示,然后判断是否最好一本单册新书,是则结束,否则回到扫描输入单册图书登入号。
请参阅图11,是图书分馆异动排架流程图。开始后,分馆图书异动到对应分馆;扫描全部异动图书登录号;全部异动图书状态更新为可借;扫描输入单册图书登录号;获取单册图书物理典藏地点及排架信息,并判断单册图书是否手工上架,否则返回获取单册图书物理典藏地点及排架信息,是则进行单册图书状态变更,典藏地点单行书架展示;图书馆物理典藏地点单排书架展示;判断单册图书是否最后一本,是则结束,否则返回扫描输入单册图书登录号。
本发明虚拟现实图书馆海量图书立体建模快速生成法具有如下特点:
(1)“图书级”的虚拟现实
“图书级”的虚拟现实,是以图书为单元进行三维立体建模,实现了在架图书的立面、封面、目录和内容的虚拟现实阅读,最大程度地虚拟了读者在图书馆真实环境中发生的行为。实现“图书级”的虚拟现实,就是实现在架图书的立面、封面、目录和内容的虚拟现实查询、阅读、预借、预约等功能。
(2)“一次建模,N次纹理贴图”的数学方法
采用“一次建模,N次纹理贴图”的数学方法,解决海量目录数据生成三维虚拟图书所需要的巨大数据量而形成的突出矛盾,该数学方法使海量虚拟图书生成的巨大数据量大为减少,从而使得该虚拟现实图书馆运行于局域网(校园网)或广域网成为现实。该数学方法是虚拟现实图书馆的海量图书立体建模快速生成法的关键技术之一。
(3)建立图书目录数据在虚拟现实情景数据库中的同步映射
采用虚拟现实情境数据库与图书馆自动化集成管理***图书目录数据库的双数据库结构,并采用实时同步算法,实现目录数据在虚拟现实情景数据库中的同步映射,进而解决虚拟现实场景的快速生成以及虚拟场景与现实场景中数据的一致性问题。
(4)图书目录数据的实时动态同步排架算法
图书目录数据的实时动态同步排架算法主要包括虚拟图书排架规则、基于图论网络流算法的海量数据更新与交换模型、基于人眼生理特性的排架显示方法、局部倒架算法和相关数据库的操作函数等,实现目录数据在虚拟图书排架中自动更新与动态同步。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种虚拟图书馆海量图书三维立体建模方法,包括建立图书目录数据库数据增长模型、根据图书目录数据库数据增长模型实现图书目录数据的实时动态同步排架以及“图书级”虚拟现实场景模型建立,其中“图书级”虚拟现实场景模型建立包括登记实体图书资料基本信息、扫描获取实体图书资料封面图片;根据单册图书图片和图书基本属性,建模生成单册图书模型;逐个生成每册图书模型,从而形成图书模型数据库;结合图书排架信息、典藏信息、图书状态和图书基本属性,通过虚拟现实技术依次展示出图书馆图书、物理典藏地点书架、物理典藏地点虚拟现实场景;最后形成图书馆总体的虚拟现实场景。
2.如权利要求1所述的虚拟图书馆海量图书三维立体建模方法,其特征在于:包括以书名、开本和页数等图书自动化管理***均提供的信息以及电子图书为基础,融合了图书基本三维立体架构快速建模和矩阵队列、立面切割生成法、快速实时同步排架法及基础数据传递函数算法,并基于人眼的生理特性形成海量图书立体建模方法。
3.如权利要求2所述的虚拟图书馆海量图书三维立体建模方法,其特征在于:还包括虚拟现实情景数据库与图书馆自动化集成管理***可视化对接,具体包括单册图书生成的三维立体建模算法;采用“一次建模,N次纹理贴图”的方法;虚拟现实情景数据库与图书馆自动化集成管理***图书目录数据库数据同步算法;基于网络流算法的目录数据自动映射的图书实时动态同步排架算法。
4.如权利要求3所述的虚拟图书馆海量图书三维立体建模方法,其特征在于:图书立面切割算法包括:在图书封面左侧切取一条宽度为图书厚度的图片作为图书立面的背景,然后调用图书自动化集成***图书目录数据库里的书名、作者、出版社信息,形成不同的文本图层并与背景层合成,竖向分布于图书立面。
5.如权利要求4所述的虚拟图书馆海量图书三维立体建模方法,其特征在于:基于人眼生理特性的排架显示包括根据人眼的生理特性,图书排架显示遵循多焦点显示、防疲劳显示和动态可调分辨率等规则,其中,多焦点显示包括以每行书架的中间位置作为焦点,每列书架可以有多个焦点;焦点处的图书模型渲染粒度要求精细、焦点周围的图书模型渲染可降低要求;防疲劳显示包括每行书架的图书模型渲染显示时,需进行分隔,减少读者使用时的人眼疲劳;动态可调分辨率包括根据实际显示画面的位置变动和放大缩小情况,实时动态调整画面显示分辨率。
6.如权利要求5所述的虚拟图书馆海量图书三维立体建模方法,其特征在于:实时动态排架包括目录同步更新算法,具体为:手工上架:管理员手工选择位置,将书放上虚拟书架,自动计算书的厚度,并计算书架空出位置;批量自动上架:按照指定的上架规则,***自动在虚拟书架排列上架;手工下架:管理员手工选择位置,将书由虚拟书架上取下,自动计算书的厚度,并计算书架空出位置;自动下架:按照指定的下架规则,***自动在虚拟书架排列下架。
7.如权利要求6所述的虚拟图书馆海量图书三维立体建模方法,其特征在于:虚拟图书自动排架初始化包括通过图书馆自动化管理***调出图书典藏信息、图书状态、图书基本属性构建的图书模型数据库以及图书封面图片,结合图书馆物理书架信息依次生成图书馆物理典藏地点单行书架展示、图书馆物理典藏地点单排书架展示、图书馆物理典藏地点展示,完成初始化。
8.如权利要求7所述的虚拟图书馆海量图书三维立体建模方法,其特征在于:图书新书上架排架包括扫描输入单册图书登入号,判断是否是单册新书,如果是,计算单册新书物理典藏地点并显示;接着判断该单册新书是否上架,是的话则进行新书单册所属物理典藏地点单行书架计算合成,进行图书馆物理典藏地点单排书架展示;然后判断是否最好一本单册新书,是则结束,否则回到扫描输入单册图书登入号。
9.如权利要求8所述的虚拟图书馆海量图书三维立体建模方法,其特征在于:图书正常流通上架包括先扫描输入单册图书登录号;获取单册图书物理典藏地点及排架信息;判断单册图书是否手工上架,否则返回获取单册图书物理典藏地点及排架信息,是则单册图书状态变更,进行典藏地点单行书架展示;接着图书馆物理典藏地点单排书架展示;判断是否最后一本书,是则结束,否则返回扫描输入单册图书登录号。
10.如权利要求9所述的虚拟图书馆海量图书三维立体建模方法,其特征在于:图书分馆异动排架包括分馆图书异动到对应分馆;扫描全部异动图书登录号;全部异动图书状态更新为可借;扫描输入单册图书登录号;获取单册图书物理典藏地点及排架信息,并判断单册图书是否手工上架,否则返回获取单册图书物理典藏地点及排架信息,是则进行单册图书状态变更,典藏地点单行书架展示;图书馆物理典藏地点单排书架展示;判断单册图书是否最后一本,是则结束,否则返回扫描输入单册图书登录号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009103105875A CN101877144B (zh) | 2009-11-27 | 2009-11-27 | 虚拟图书馆海量图书三维立体建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009103105875A CN101877144B (zh) | 2009-11-27 | 2009-11-27 | 虚拟图书馆海量图书三维立体建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101877144A true CN101877144A (zh) | 2010-11-03 |
CN101877144B CN101877144B (zh) | 2012-07-18 |
Family
ID=43019689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009103105875A Expired - Fee Related CN101877144B (zh) | 2009-11-27 | 2009-11-27 | 虚拟图书馆海量图书三维立体建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101877144B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976459A (zh) * | 2010-10-26 | 2011-02-16 | 深圳职业技术学院 | 虚拟现实图书馆自动排架***的实现方法 |
CN102663014A (zh) * | 2012-03-20 | 2012-09-12 | 福州博远无线网络科技有限公司 | 移动设备阅读软件中对书架界面中在线书籍的管理方法 |
CN106228210A (zh) * | 2016-07-25 | 2016-12-14 | 成都市诚品文化传播有限公司 | 一种图书排架方法 |
CN106327584A (zh) * | 2016-08-24 | 2017-01-11 | 上海与德通讯技术有限公司 | 一种用于虚拟现实设备的图像处理方法及装置 |
CN106527695A (zh) * | 2016-10-31 | 2017-03-22 | 宇龙计算机通信科技(深圳)有限公司 | 一种信息输出方法及装置 |
CN106648069A (zh) * | 2016-11-17 | 2017-05-10 | 安徽华博胜讯信息科技股份有限公司 | 一种基于虚拟现实技术的数字化图书馆*** |
CN107038737A (zh) * | 2016-02-03 | 2017-08-11 | 博雅网络游戏开发(深圳)有限公司 | 立体棋牌绘制方法和装置 |
CN107247689A (zh) * | 2017-06-02 | 2017-10-13 | 广州星耀悦教育科技有限公司 | 一种图书分类排架的方法及其存储介质、装置 |
CN108009602A (zh) * | 2017-10-23 | 2018-05-08 | 广东数相智能科技有限公司 | 一种基于条码识别的图书定位方法、电子设备及存储介质 |
CN110298632A (zh) * | 2019-06-28 | 2019-10-01 | 温州科技职业学院 | 一种虚拟现实图书馆自动排架*** |
CN112348970A (zh) * | 2020-11-11 | 2021-02-09 | 华南农业大学 | 一种密闭藏书室内的典籍虚拟现实交互方法 |
CN116758250A (zh) * | 2023-08-18 | 2023-09-15 | 湖南视觉伟业智能科技有限公司 | 三维构建园区虚拟场景可视化方法、装置及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013440A (zh) * | 2007-01-12 | 2007-08-08 | 王宏源 | 一种基于图书知识元构建数字图书馆的方法 |
CN101303773A (zh) * | 2008-06-10 | 2008-11-12 | 中国科学院计算技术研究所 | 一种虚拟场景生成方法及*** |
-
2009
- 2009-11-27 CN CN2009103105875A patent/CN101877144B/zh not_active Expired - Fee Related
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976459B (zh) * | 2010-10-26 | 2012-09-05 | 深圳职业技术学院 | 虚拟现实图书馆自动排架***的实现方法 |
CN101976459A (zh) * | 2010-10-26 | 2011-02-16 | 深圳职业技术学院 | 虚拟现实图书馆自动排架***的实现方法 |
CN102663014A (zh) * | 2012-03-20 | 2012-09-12 | 福州博远无线网络科技有限公司 | 移动设备阅读软件中对书架界面中在线书籍的管理方法 |
CN107038737A (zh) * | 2016-02-03 | 2017-08-11 | 博雅网络游戏开发(深圳)有限公司 | 立体棋牌绘制方法和装置 |
CN107038737B (zh) * | 2016-02-03 | 2021-05-28 | 博雅网络游戏开发(深圳)有限公司 | 立体棋牌绘制方法和装置 |
CN106228210A (zh) * | 2016-07-25 | 2016-12-14 | 成都市诚品文化传播有限公司 | 一种图书排架方法 |
CN106327584A (zh) * | 2016-08-24 | 2017-01-11 | 上海与德通讯技术有限公司 | 一种用于虚拟现实设备的图像处理方法及装置 |
CN106327584B (zh) * | 2016-08-24 | 2020-08-07 | 深圳市瑞云科技有限公司 | 一种用于虚拟现实设备的图像处理方法及装置 |
CN106527695B (zh) * | 2016-10-31 | 2019-06-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种信息输出方法及装置 |
CN106527695A (zh) * | 2016-10-31 | 2017-03-22 | 宇龙计算机通信科技(深圳)有限公司 | 一种信息输出方法及装置 |
CN106648069A (zh) * | 2016-11-17 | 2017-05-10 | 安徽华博胜讯信息科技股份有限公司 | 一种基于虚拟现实技术的数字化图书馆*** |
CN107247689A (zh) * | 2017-06-02 | 2017-10-13 | 广州星耀悦教育科技有限公司 | 一种图书分类排架的方法及其存储介质、装置 |
WO2019080818A1 (zh) * | 2017-10-23 | 2019-05-02 | 广东数相智能科技有限公司 | 一种基于条码识别的图书定位方法、电子设备及存储介质 |
CN108009602A (zh) * | 2017-10-23 | 2018-05-08 | 广东数相智能科技有限公司 | 一种基于条码识别的图书定位方法、电子设备及存储介质 |
CN108009602B (zh) * | 2017-10-23 | 2021-09-28 | 广东数相智能科技有限公司 | 一种基于条码识别的图书定位方法、电子设备及存储介质 |
CN110298632A (zh) * | 2019-06-28 | 2019-10-01 | 温州科技职业学院 | 一种虚拟现实图书馆自动排架*** |
CN112348970A (zh) * | 2020-11-11 | 2021-02-09 | 华南农业大学 | 一种密闭藏书室内的典籍虚拟现实交互方法 |
CN116758250A (zh) * | 2023-08-18 | 2023-09-15 | 湖南视觉伟业智能科技有限公司 | 三维构建园区虚拟场景可视化方法、装置及*** |
CN116758250B (zh) * | 2023-08-18 | 2023-10-20 | 湖南视觉伟业智能科技有限公司 | 三维构建园区虚拟场景可视化方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN101877144B (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101877144B (zh) | 虚拟图书馆海量图书三维立体建模方法 | |
CN101976459B (zh) | 虚拟现实图书馆自动排架***的实现方法 | |
Faraj et al. | An industry foundation classes Web-based collaborative construction computer environment: WISPER | |
Niu et al. | A BIM-GIS integrated web-based visualization system for low energy building design | |
Spaccapietra et al. | GIS databases: From multiscale to multirepresentation | |
CN110245368A (zh) | 一种bim数据的结构化处理与存储方法 | |
Lo Turco et al. | Data modeling for museum collections | |
CN101853305A (zh) | 一种构建综合农业环境信息数据库的方法 | |
Rogozov et al. | Purpose-driven approach for flexible structure-independent database design | |
CN101360123A (zh) | 一种网络***及其管理方法 | |
CN103902548B (zh) | 一种访问数据库的***和方法及注册、订票、网购*** | |
Lee et al. | An architecture for retaining and analyzing visual explorations of databases | |
CN105760370A (zh) | 一种插件式报表框架技术 | |
Luaces et al. | A generic framework for GIS applications | |
Dong et al. | [Retracted] Application of Cloud Computing Combined with GIS Virtual Reality in Construction Process of Building Steel Structure | |
CN101593176A (zh) | 一种基于Web的参数化跨平台零件库*** | |
CN1924857B (zh) | 复杂业务驱动的多层动态页面设计方法 | |
Echavarria et al. | Analyzing the decorative style of 3D heritage collections based on shape saliency | |
CN114579913A (zh) | 数字孪生文化场馆的构建方法、***及存储介质 | |
Gaiani et al. | VR as work tool for architectural & archaeological restoration: the ancient Appian way 3D web virtual GIS | |
CN106570051A (zh) | 一种基于三维gis模型的海洋石油应用平台构建方法 | |
Gruhn et al. | Analysing a process landscape by simulation | |
Chang et al. | Query planning for range queries with user-defined aggregation on multi-dimensional scientific datasets | |
CN102081635A (zh) | 可提供有效信息的知识管理*** | |
TWI235342B (en) | Geographic information system demonstrating 3D virtual reality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120718 Termination date: 20191127 |