CN103729878A - 一种基于wpf的三维图形实现方法及三维文字实现方法 - Google Patents
一种基于wpf的三维图形实现方法及三维文字实现方法 Download PDFInfo
- Publication number
- CN103729878A CN103729878A CN201310701769.1A CN201310701769A CN103729878A CN 103729878 A CN103729878 A CN 103729878A CN 201310701769 A CN201310701769 A CN 201310701769A CN 103729878 A CN103729878 A CN 103729878A
- Authority
- CN
- China
- Prior art keywords
- dimensional
- wpf
- coordinate
- implementation method
- method based
- 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.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于WPF的三维图形实现方法,其特征在于,包括如下步骤:步骤一:设置要展示的数据的条件;步骤二:根据步骤一的条件从数据库中查出三维的轨迹点的坐标;步骤三:根据轨迹点的坐标信息生成三角形面;步骤四:根据轨迹点的坐标信息生成坐标网格;步骤五:通过对三角形面的缩放来实现对三维图形的缩放;步骤六:对三维图形进行旋转。本发明还公开了一种基于WPF的三维文字实现方法。本发明一种基于WPF的三维图形实现方法及三维文字实现方法通过将复杂图形、文字统一采用三角形表达的方式,提高了图形绘制的效率。
Description
技术领域
本发明涉及一种三维图形实现方法,具体涉及一种基于WPF的三维图形实现方法,本发明还涉及一种基于WPF的三维文字实现方法。
背景技术
在WPF (Windows Presentation Foundation,微软针对图形图像的开发软件)技术中三维图形里,所有物体都被描述成为一系列三角形的集合。因为三角形是用来描述平面最小的几何体。根据它的材质和它与光线的角度,在场景中,渲染引擎可以计算出每一个三角形的颜色。
3D物体的一个表面称为一个网格(mesh)。一个网格被定义为许多3D点。这些点成为顶点(vertices)。这些顶点通过环绕方式连接起来来形成三角形。每一个三角形有个正面和反面,只有正面才会被渲染。三角形的正面可以通过点的环绕顺序来确定。
WPF的3D控件是在以上的基础上实现各种形状的封装,并增加了各个控件的特殊控制属性,方便技术人员利用控件快速的实现开发。
现有直接利用3D控件绘图虽然可以提高开发效率,但是在大数据量绘图(在场景中存在1万个以上的3D元素)时,绘图过程需要很长时间,而且在用户交互过程中图形变换速度不能达到可以接受的要求。
发明内容
为解决现有技术的不足,本发明的目的在于提供一种基于WPF的三维图形实现方法和三维文字实现方法。
为了实现上述目标,本发明采用如下的技术方案:
一种基于WPF的三维图形实现方法,其特征在于,包括如下步骤:
步骤一:设置要展示的数据的条件;
步骤二:根据步骤一的条件从数据库中查出三维的轨迹点的坐标;
步骤三:根据轨迹点的坐标信息生成三角形面;
步骤四:根据轨迹点的坐标信息生成坐标网格;
步骤五:通过对三角形面的缩放来实现对三维图形的缩放;
步骤六:对三维图形进行旋转。
前述的一种基于WPF的三维图形实现方法,其特征在于,所述步骤三包括:根据需要设置三角形面的颜色,并通过WPF进行展示。
前述的一种基于WPF的三维图形实现方法,其特征在于,所述步骤四包括:所述坐标网格中设置有用于衡量网格大小的三维数字标尺。
前述的一种基于WPF的三维图形实现方法,其特征在于,所述步骤五包括:设置缩放因子,根据缩放因子的值的变化来相应地缩放三角形面。
前述的一种基于WPF的三维图形实现方法,其特征在于,通过按动键盘上的“+”键来相应地放大缩放因子的值,通过按动键盘上的“-”键来相应地缩小缩放因子的值。
前述的一种基于WPF的三维图形实现方法,其特征在于,设置旋转角度,通过旋转变换公式来对轨迹点进行旋转,从而实现对三维图形的旋转;所述旋转变换公式为:x1=cos(angle)*x-sin(angle)*y;y1=cos(angle)*y+sin(angle)*x;其中x,y为需要变换的轨迹点的坐标,x1,y1为变换后轨迹点的坐标,angle为旋转角度。
前述的一种基于WPF的三维图形实现方法,其特征在于,在三维图形的图形区域中按住鼠标按键然后移动鼠标,根据鼠标移动的轨迹来计算所述旋转角度。
前述的一种基于WPF的三维图形实现方法,其特征在于,所述步骤三包括:
步骤3a:设置轨迹点的半径;
步骤3b:在三维坐标中以坐标原点作为球心建立球面作为轨迹点;
步骤3c:设置轨迹点外观;
步骤3d:确定球面在三维空空间的位置,作坐标平移计算,得出新的空间坐标
步骤3e:根据步骤3a至步骤3d确定的参数,由WPF来绘制球面,使得球面在指定的位置,以指定的颜色来显示。
前述的一种基于WPF的三维图形实现方法,其特征在于,所述步骤四包括:
步骤4a:确定坐标网格线的半径;
步骤4b:根据要展现数据的范围来确定坐标线的长度;
步骤4c:设置坐标网格外观参数;
步骤4d:在三维坐标中建模;
步骤4e:作平移和旋转计算,得出新的空间坐标;
步骤4f:根据步骤4a至步骤4e确定的参数,由WPF来绘制网格线,进行三维图形展示。
一种基于WPF的三维文字实现方法,其特征在于,包括如下步骤:
步骤一:确定要展现的三维文字,由WPF计算出文字的长度和高度,由计算出的长度和高度在三维坐标中建立三维平面;
步骤二:把要展现的文字作为三维平面的填充;
步骤三:根据轨迹点的范围和坐标网格的位置,对填充了文字的三维平面作平移计算,得出新的空间坐标;
步骤四:由WPF绘制计算后的三维平面,使得指定的文字在指定的位置显示。
本发明的有益之处在于:本发明一种基于WPF的三维图形实现方法及三维文字实现方法通过将复杂图形、文字统一采用三角形表达的方式,提高了图形绘制的效率。
附图说明
图1是本发明一种基于WPF的三维图形实现方法的流程图;
图2是本发明一种基于WPF的三维图形实现方法步骤三的流程图;
图3是本发明一种基于WPF的三维图形实现方法步骤四的流程图;
图4是本发明一种基于WPF的三维文字实现方法的流程图。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
参照图1所示,本发明是利用计算机三维技术(WPF)来绘制空间中运动轨迹点的形成轨迹。以多条直线段构成的网格作为坐标,轨迹点全部展现在网格中,而网格的边缘某一侧有文字说明两条之间的距离,另有文字说明每一方向的直线代表的参数。生成的三维图形及坐标网格可以根据键盘或鼠标的操作作平移或旋转变换,以方便用户观看轨迹。
本发明用到的旋转变换公式:
x1=cos(angle)*x-sin(angle)*y;
y1=cos(angle)*y+sin(angle)*x;
其中x,y为需要变换点的坐标,x1,y1为变换后点的坐标,angle为旋转的角度。
本发明的技术方案包括如下步骤:
步骤一:设置要展示的数据的条件,本发明不限制要设置的数据条件的具体形式,设置条件目的是限制要展示的数据的范围;
步骤二:根据步骤一的条件从数据库中查出三维的轨迹点的坐标,这里的轨迹点为经过其他程序加工过的数据;
步骤三:根据轨迹点的坐标信息生成三角形面;
步骤四:根据轨迹点的坐标信息生成坐标网格;
步骤五:通过对三角形面的缩放来实现对三维图形的缩放;
步骤六:对三维图形进行旋转。
本发明中,优选根据轨迹点信息生成三角形的面,并根据需要设置三角面的颜色来通过WPF技术展示;
根据轨迹点信息的范围生成坐标网格,网格中有用于衡量网格大小的三维数字标尺。
按键盘上的“+”键或“-”键通过一定的缩放因子来缩放三角形面达到缩放三维图形的目的(这是一种用户事件)。
在图形区域中按住鼠标左键等鼠标按键然后移动数据,根据鼠标移动的轨迹来计算三维图形转动的角度(这是一种用户事件)。
在进行旋转时,设置旋转角度,通过旋转变换公式来对轨迹点进行旋转,从而实现对三维图形的旋转;旋转变换公式为:x1=cos(angle)*x-sin(angle)*y;y1=cos(angle)*y+sin(angle)*x;其中x,y为需要变换的轨迹点的坐标,x1,y1为变换后轨迹点的坐标,angle为旋转角度。
图2是本发明一种基于WPF的三维图形实现方法步骤三的流程图。图2显示的是轨迹点生成的过程。
轨迹点是以半径较小的球面来展现的(以面代体)。可以根据如下几步进行:
步骤3a:设置轨迹点的半径;
步骤3b:在三维坐标中以坐标原点作为球心建立球面作为轨迹点;
步骤3c:设置轨迹点外观,如颜色或者图片作为球面的图案;
步骤3d:确定球面在三维空空间的位置,作坐标平移计算,得出新的空间坐标
步骤3e:根据步骤3a至步骤3d确定的参数,由WPF来绘制球面,使得球面在指定的位置,以指定的颜色来显示。
图3是本发明一种基于WPF的三维图形实现方法步骤四的流程图。图3显示的是如何生成坐标网格。由于坐标网格是多条线,现以一条线的生成来描述。坐标网格线以半径较小的柱面来展现。其包括如下几步:
步骤4a:确定坐标网格线的半径;
步骤4b:根据要展现数据的范围来确定坐标线的长度;
步骤4c:设置坐标网格外观参数,下面以设置的网格的外观参数为网格线的颜色举例;
步骤4d:在三维坐标中建模,这里的建模是指在三维坐标中建立柱面;
步骤4e:作平移和旋转计算,得出新的空间坐标,在这里,根据网格线代表的是x、y或z轴作旋转和平移计算,得出新的空间坐标;
步骤4f:根据步骤4a至步骤4e确定的参数,由WPF来绘制网格线,进行三维图形展示,即由WPF来绘制网格线,使得网格线在指定的位置,以指定的颜色来显示。
如图4所示,下面阐述一种基于WPF的三维文字实现方法包括如下步骤:
步骤一:确定要展现的三维文字,由WPF计算出文字的长度和高度,由计算出的长度和高度在三维坐标中建立三维平面;
步骤二:把要展现的文字作为三维平面的填充;
步骤三:根据轨迹点的范围和坐标网格的位置,对填充了文字的三维平面作平移计算,得出新的空间坐标;
步骤四:由WPF绘制计算后的三维平面,使得指定的文字在指定的位置显示。
本发明的关键点为将相应图形及文字转换为三角形表达方法,本发明通过将复杂图形、文字统一采用三角形表达的方式,提高了图形绘制的效率。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (10)
1.一种基于WPF的三维图形实现方法,其特征在于,包括如下步骤:
步骤一:设置要展示的数据的条件;
步骤二:根据步骤一的条件从数据库中查出三维的轨迹点的坐标;
步骤三:根据轨迹点的坐标信息生成三角形面;
步骤四:根据轨迹点的坐标信息生成坐标网格;
步骤五:通过对三角形面的缩放来实现对三维图形的缩放;
步骤六:对三维图形进行旋转。
2.根据权利要求1所述的一种基于WPF的三维图形实现方法,其特征在于,所述步骤三包括:根据需要设置三角形面的颜色,并通过WPF进行展示。
3.根据权利要求2所述的一种基于WPF的三维图形实现方法,其特征在于,所述步骤四包括:所述坐标网格中设置有用于衡量网格大小的三维数字标尺。
4.根据权利要求3所述的一种基于WPF的三维图形实现方法,其特征在于,所述步骤五包括:设置缩放因子,根据缩放因子的值的变化来相应地缩放三角形面。
5.根据权利要求4所述的一种基于WPF的三维图形实现方法,其特征在于,通过按动键盘上的“+”键来相应地放大缩放因子的值,通过按动键盘上的“-”键来相应地缩小缩放因子的值。
6.根据权利要求5所述的一种基于WPF的三维图形实现方法,其特征在于,设置旋转角度,通过旋转变换公式来对轨迹点进行旋转,从而实现对三维图形的旋转;所述旋转变换公式为:x1=cos(angle)*x-sin(angle)*y;y1=cos(angle)*y+sin(angle)*x;其中x,y为需要变换的轨迹点的坐标,x1,y1为变换后轨迹点的坐标,angle为旋转角度。
7.根据权利要求6所述的一种基于WPF的三维图形实现方法,其特征在于,在三维图形的图形区域中按住鼠标按键然后移动鼠标,根据鼠标移动的轨迹来计算所述旋转角度。
8.根据权利要求7所述的一种基于WPF的三维图形实现方法,其特征在于,所述步骤三包括:
步骤3a:设置轨迹点的半径;
步骤3b:在三维坐标中以坐标原点作为球心建立球面作为轨迹点;
步骤3c:设置轨迹点外观;
步骤3d:确定球面在三维空空间的位置,作坐标平移计算,得出新的空间坐标
步骤3e:根据步骤3a至步骤3d确定的参数,由WPF来绘制球面,使得球面在指定的位置,以指定的颜色来显示。
9.根据权利要求8所述的一种基于WPF的三维图形实现方法,其特征在于,所述步骤四包括:
步骤4a:确定坐标网格线的半径;
步骤4b:根据要展现数据的范围来确定坐标线的长度;
步骤4c:设置坐标网格外观参数;
步骤4d:在三维坐标中建模;
步骤4e:作平移和旋转计算,得出新的空间坐标;
步骤4f:根据步骤4a至步骤4e确定的参数,由WPF来绘制网格线,进行三维图形展示。
10.一种基于WPF的三维文字实现方法,其特征在于,包括如下步骤:
步骤一:确定要展现的三维文字,由WPF计算出文字的长度和高度,由计算出的长度和高度在三维坐标中建立三维平面;
步骤二:把要展现的文字作为三维平面的填充;
步骤三:根据轨迹点的范围和坐标网格的位置,对填充了文字的三维平面作平移计算,得出新的空间坐标;
步骤四:由WPF绘制计算后的三维平面,使得指定的文字在指定的位置显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310701769.1A CN103729878A (zh) | 2013-12-19 | 2013-12-19 | 一种基于wpf的三维图形实现方法及三维文字实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310701769.1A CN103729878A (zh) | 2013-12-19 | 2013-12-19 | 一种基于wpf的三维图形实现方法及三维文字实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103729878A true CN103729878A (zh) | 2014-04-16 |
Family
ID=50453939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310701769.1A Pending CN103729878A (zh) | 2013-12-19 | 2013-12-19 | 一种基于wpf的三维图形实现方法及三维文字实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103729878A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033408A (zh) * | 2015-03-20 | 2016-10-19 | 广州金山移动科技有限公司 | 一种对象旋转度调整方法及装置 |
CN107730440A (zh) * | 2017-09-13 | 2018-02-23 | 杭州电子科技大学 | 一种基于移动端窗帘图像模型生成的方法 |
CN110598150A (zh) * | 2019-08-27 | 2019-12-20 | 绿漫科技有限公司 | 一种用于web页面3D动态展示文字的方法 |
CN115713613A (zh) * | 2022-11-25 | 2023-02-24 | 阿波罗智联(北京)科技有限公司 | 用于线路的文字标识方法及装置、电子设备和介质 |
US11836437B2 (en) | 2020-09-10 | 2023-12-05 | Lemon Inc. | Character display method and apparatus, electronic device, and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080266290A1 (en) * | 2007-04-26 | 2008-10-30 | Identitymine Inc. | Container3D Control |
CN102122502A (zh) * | 2011-03-15 | 2011-07-13 | 深圳芯邦科技股份有限公司 | 一种三维字体显示方法以及相关装置 |
CN102779355A (zh) * | 2012-04-12 | 2012-11-14 | 天脉聚源(北京)传媒科技有限公司 | 一种实现三维饼状图动态呈现的方法 |
CN102800119A (zh) * | 2012-06-13 | 2012-11-28 | 天脉聚源(北京)传媒科技有限公司 | 一种三维曲线的动画展示方法和装置 |
-
2013
- 2013-12-19 CN CN201310701769.1A patent/CN103729878A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080266290A1 (en) * | 2007-04-26 | 2008-10-30 | Identitymine Inc. | Container3D Control |
CN102122502A (zh) * | 2011-03-15 | 2011-07-13 | 深圳芯邦科技股份有限公司 | 一种三维字体显示方法以及相关装置 |
CN102779355A (zh) * | 2012-04-12 | 2012-11-14 | 天脉聚源(北京)传媒科技有限公司 | 一种实现三维饼状图动态呈现的方法 |
CN102800119A (zh) * | 2012-06-13 | 2012-11-28 | 天脉聚源(北京)传媒科技有限公司 | 一种三维曲线的动画展示方法和装置 |
Non-Patent Citations (4)
Title |
---|
XIAOWAN3: "[Lieo原创]圆柱体的三角形剖分——使用WPF 3D绘制圆", 《HTTP://NOTE.SDO.COM/U/3413430/N/D1MS~KKQ7NWLX05U004LU》 * |
张景仁: "WPF模拟三维消防场景的技术实现", 《武警学院学报》 * |
申丽芳: "基于WPF和银光技术的住宅区规划及室内呈现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
许承东: "《计算机图形技术(第2版)》", 30 September 2011 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033408A (zh) * | 2015-03-20 | 2016-10-19 | 广州金山移动科技有限公司 | 一种对象旋转度调整方法及装置 |
CN106033408B (zh) * | 2015-03-20 | 2019-11-26 | 广州金山移动科技有限公司 | 一种对象旋转度调整方法及装置 |
CN107730440A (zh) * | 2017-09-13 | 2018-02-23 | 杭州电子科技大学 | 一种基于移动端窗帘图像模型生成的方法 |
CN107730440B (zh) * | 2017-09-13 | 2020-11-17 | 杭州电子科技大学 | 一种基于移动端窗帘图像模型生成的方法 |
CN110598150A (zh) * | 2019-08-27 | 2019-12-20 | 绿漫科技有限公司 | 一种用于web页面3D动态展示文字的方法 |
US11836437B2 (en) | 2020-09-10 | 2023-12-05 | Lemon Inc. | Character display method and apparatus, electronic device, and storage medium |
CN115713613A (zh) * | 2022-11-25 | 2023-02-24 | 阿波罗智联(北京)科技有限公司 | 用于线路的文字标识方法及装置、电子设备和介质 |
CN115713613B (zh) * | 2022-11-25 | 2024-05-24 | 阿波罗智联(北京)科技有限公司 | 用于线路的文字标识方法及装置、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102157014B (zh) | 地铁综合管线三维可视化方法 | |
CN103729878A (zh) | 一种基于wpf的三维图形实现方法及三维文字实现方法 | |
CN108305315B (zh) | 一种基于wpf的三维地形高效渐变着色方法 | |
CN107945283A (zh) | 基于移动增强现实技术和bim的工程展示方法 | |
CN103559374A (zh) | 一种多子网格模型上进行面分裂型曲面细分的方法 | |
CN107102991A (zh) | 一种三维gis系统中的杆塔参数化建模方法 | |
Guerrero et al. | 3D visualisation of underground pipelines: Best strategy for 3D scene creation | |
CN102831281B (zh) | 在gocad软件中建立二维工作面的辅助建模方法 | |
CN111221514B (zh) | 基于OsgEarth的三维可视化组件实现方法及系统 | |
CN104299255A (zh) | 一种三维地形模型的渲染方法 | |
CN102646286B (zh) | 三维空间结构的数字图形介质模拟方法 | |
CN117874893A (zh) | 一种基于bim和ue5的化工管道可视化方法 | |
CN110706342B (zh) | 一种基于BIM模型Web端轻量化展示地质模型剖面的方法 | |
She et al. | An efficient method for rendering linear symbols on 3D terrain using a shader language | |
Zhao et al. | Visual analysis of three-dimensional flow field based on WebVR | |
CN109598785A (zh) | 一种三维网格模型视图转换方法 | |
CN104036547B (zh) | 基于Leap Motion控制的三维笔刷实时生成网络模型的方法与装置 | |
CN104143204A (zh) | 考虑拓扑结构的移动最小二乘二维角色变形方法 | |
Li | Architectural design virtual simulation based on virtual reality technology | |
CN103679794A (zh) | 模拟三维素描铅笔画的绘制方法 | |
CN114067054A (zh) | 一种基于bim模型的管廊可视化方法、系统及存储介质 | |
Liu et al. | Three-dimensional geological modeling of mining subsidence prediction based on the blocks | |
Wang et al. | The Development and application of 3-D visual display platform for safety monitoring information of hydropower project | |
Yan et al. | 3D visual design for mobile search result on 3G mobile phone | |
Liu et al. | Construction and Visualization of 3D Landscape |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140416 |
|
RJ01 | Rejection of invention patent application after publication |