[发明专利]一种单视图多OpenGL视口的显示方法无效
申请号: | 201010018282.X | 申请日: | 2010-01-22 |
公开(公告)号: | CN101789132A | 公开(公告)日: | 2010-07-28 |
发明(设计)人: | 钟俊;颜钦;李相鹏;尚文;刘栋材 | 申请(专利权)人: | 苏州领航自动化科技有限公司 |
主分类号: | G06T11/80 | 分类号: | G06T11/80;G06T17/40 |
代理公司: | 苏州华博知识产权代理有限公司 32232 | 代理人: | 傅靖 |
地址: | 215000 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 视图 opengl 显示 方法 | ||
技术领域
本发明涉及OpenGL显示的技术领域,特别涉及一种单视图多OpenGL视口的显示方法。
背景技术
目前大多数CAD或是其他建模及绘图工具所采用的显示方式皆为单视图显示,这种显示方式在技术上较容易实现,但这种显示方式在同一时间内只能查看当前正在显示的模型。
其他部分的建模及绘图软件采用的是多视图的显示方式。多视图是在显示程序框架中构建多个视图区域,从而可以将不同模型或是模型的不同部分同时在不同的视图区域中进行显示,实现多个模型同时观察的目的。多视图的实现方法有多种,如视图替换、拆分窗口、浮动窗口等等。
但是,上述的显示方式存在如下不足之处:
1.单视图显示在同一时间只能查看当前正在显示的模型,不能将不同模型或是模型的不同部分如整体形状及局部形状很好的结合在一起进行显示,以方便操作人员进行观察。以常用建模工具软件Pro/Engineer为例,如附图2所示,右侧的视图中显示的是名为FAN-JN-CON-ASSY.ASM的装配体,它包含有三个零件:FAN-JN1-STAY.PRT、FAN-JN1KS10PL1.PRT、FAN-JN1DS10SL1.PRT,如果想查看这三个零件需要将它们单独打开进行显示,如附图3所示。
2.多视图的显示方式顾名思义,采用了多个视图,下面以浮动窗口为例介绍多视图。浮动窗口的实现方法是首先创建一个主窗口,通过在该窗口上增加若干个可浮动、可改变大小的窗口即构成了浮动窗口,如附图4所示,框架的整体为主窗口,右侧的“视图A”部分为浮动窗口,主窗口和“视图A”的黑色显示部分即为各自窗口的视图,因此在该例子中含有两个视图。“视图A”的窗口可以漂浮在主窗口之上,也可改变大小,如附图5所示。多视图的显示方式解决了多个模型同时显示的问题,但是这种显示方法仍然不够简洁美观,而且对某个视图进行鼠标的交互式操作时,需要首先将鼠标的焦点设置到该视图上。
综上,现有技术的显示方法都不能完成在单视图上显示多个部件的功能。
发明内容
为了解决现有的显示工具多个视图并存时操作不够方便或界面不够美观的问题,通过在一个视图中无缝的同时显示多个OpenGL视口,且各视口之间操作互不影响,实现单视图中多视口的并存显示,本发明提供了一种单视图多OpenGL视口显示的方法。所述技术方案如下:
一种单视图多OpenGL视口显示的方法,其特征在于,所述显示方法包括以下步骤:
步骤A:设置多个OpenGL视口,并确定各自在视图中所处位置及大小;
步骤B:对每个OpenGL视口使用独立的正投影矩阵,将模型坐标经过变换后分别显示在对应的视口中;
步骤C:当发生鼠标操作时,检测鼠标当前位置,判断发生操作响应的视口和操作类型,并作出响应。
优选的,所述显示方法将视图区域的左上角坐标定义为坐标原点,区域的高度、宽度均定义为1,首先指定每个OpenGL视口的左上角在视图区域中的比例位置,然后分别设定该视口的高、宽与视图高、宽的比值,从而确定该OpenGL视口位于视图区域中的位置及大小。
优选的,所有OpenGL视口之间均是无缝连接的。
优选的,所述多个OpenGL视口,采用正投影的方式,分别为每个视口设置独立的正投影矩阵,将模型的三维坐标经变换后成为屏幕坐标,然后将三维模型显示在对应的OpenGL视口中。
优选的,所述步骤C中,当鼠标位于不同视口中时,进行放大、缩小、旋转、平移等操作时只影响该视口中所绘制的模型,而对本视图其他视口中的模型不会产生影响。
优选的,所述步骤C中,包括三维拾取以及不同视口之间的相互关联操作,利用OpenGL中的选择功能,对模型的每个对象进行编号,当鼠标在某个视口中点击时,判断所选中的对象,将该对象的详细信息显示在视图的其他OpenGL视口中。
本发明通过将不同模型或是同一模型的整体与局部分别显示在同一个视图的不同位置处,即不同的OpenGL视口中,且各视口中的交互式操作互不影响,实现了单视图多OpenGL视口的显示。本发明具有以下几个优点:一、实现简单,是单视图多OpenGL视口实现的有效途径之一;二、界面简洁美观,且多个视口之间互不干扰,操作方便。
附图说明
图1是本发明所述单视图多OpenGL视口显示方法的原理流程示意图;
图2是单视图显示示意图1;
图3是单视图显示示意图2;
图4是浮动窗口方式的多视图显示示意图1;
图5是浮动窗口方式的多视图显示示意图2;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州领航自动化科技有限公司,未经苏州领航自动化科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010018282.X/2.html,转载请声明来源钻瓜专利网。