用VC实现三维图形ActiveX控件

用VC实现三维图形ActiveX控件

ID:38284101

大小:162.67 KB

页数:4页

时间:2019-05-31

用VC实现三维图形ActiveX控件_第1页
用VC实现三维图形ActiveX控件_第2页
用VC实现三维图形ActiveX控件_第3页
用VC实现三维图形ActiveX控件_第4页
资源描述:

《用VC实现三维图形ActiveX控件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第15卷第4期南华大学学报(理工版)Vol.15No.42001年12月JournalofNanhuaNuiverisity(Science&EngineeringEdition)Dec.2001文章编号:1006-737X(2001)04-0063-04用VC实现三维图形ActiveX控件121陆玲,熊正为,王志畅(1.华东地质学院信息工程系,江西临川344000;2.南华大学建筑工程与资源环境学院,湖南衡阳421001)摘要:以正方体线框图为例,论述了用VisualC++6.0如何实现三维图形的Ac-tiveX控

2、件的制作,为今后用VC开发专用图形软件提供了有利帮助.关键词:VisualC++6.0;三维图形;ActiveX控件中图分类号:TP391.72文献标识码:B维物体经过投影变换后的二维图形.投影变换有0前言几种方式,本文采用的是斜平行投影.如图1所VisualC++现已成为较流行的编程工具,它示:不仅全面地贯彻了面向对象技术,而且在编译优设定投影方向的矢量为(Xp,Yp,Zp),物体上化技术方面较其它同类产品具有明显优势.在编的一点为(x,y,z),投影面为XOY面,则投影线的写专用应用软件时,特别是图形应用软件,用

3、户除参数方程为:了使用MFC类中的绘图类外,还要在图形类的基Xs=x+Xp#t础上派生出适用的类或编写图形ActiveX控件.Ys=y+Yp#tZs=z+Zp#t1问题的提出因为(Xs,Ys,Zs)在z=0的平面上,故Zs=在Windows应用程序中,设备环境与图形对0;则有t=-z/Zp,把t代入上述参数方程可得:象共同工作,协同完成绘图工作.CDC类定义了设备环境对象的类,该类提供的成员函数可以完成的操作包括:设备环境操作、使用绘图工具、使用颜色和调色板等.CDC类的成员函数可以获得和设置绘图属性、坐标变换、区域

4、操作、画线、画简单二维图形等工作,但没有三维图形的绘制.本文就是针对三维图形设计一个简单的实用的ActiveX控件.2三维图形的绘制2.1投影变换把三维物体变为二维图形表示的过程称为投图1投影变换示意图影变换.我们通过屏幕显示出的三维图形都是三Fig.1SketchmapofprojectionexchangeX收稿日期:2001-10-29作者简介:陆玲(1962-),女,湖南衡阳人,副教授.研究方向:计算机图形图象处理,数据库.X64南华大学学报(理工版)2001年12月Xs=x-Xp/Zp#z2.2三维图形的表

5、示Ys=y-Yp/Zp#z三维物体在计算机中常用线框、表面和实体改变投影方向,可改变物体z方向的投影长三种模型表示.我们采用简单的实体模型.如对于度及方向.如图2的单位正方体,可按图3表示:图2单位正方体示意图图3实体模型示意图Fig.2SketchmapofunitcubeFig.3Sketchmapofobjectmodel2.3消除隐藏面ish完成控件的设置.消除隐藏面是指将不可见的面不画,本文仅3.2添加属性论述凸多面体的消除隐藏面的方法.凸多面体的特点是某一面要么可见,要么就不可见,不可能出现一个面一部份可

6、见,一部分不可见的情况.凸多面体是由若干个平面围成的物体.假设这些平面方程为:aix+biy+ciz+di=0(i=1,2,,n)调整系数的符号,使每个平面的法向量指向多面体内部(如图3中的线表,面的边框顺序按右手法则,其法向量指向体内),如果投影方向为(Xp,Yp,Zp),那么(ai,bi,ci)#(Xp,Yp,Zp)<0时,此平面为不可见面,在作图时,此面不绘制.2.4计算平面法向量已知平面上三个点的坐标为(x1,y1,z1)、图4添加属性对话框(x2,y2,z2)、(x3,y3,z3),其顺序符合右手法则,其F

7、ig.4Addingpropertydialogue大拇指所指方向为该平面的法向量(x,y,z),则:x=(y2-y1)(z3-z1)-(y3-y1)(z2-z1)本文为了使程序简化,只设计投影方向的三y=(z2-z1)(x3-x1)-(z3-z1)(x2-x1)个分量X,Y,Z属性.z=(x2-x1)(y3-y1)-(x3-x1)(y2-y1)使用ClassWizard添加定制属性.选取View,ClassWizard之后,单击Automation.在zftCtl类中,单击AddProperty,按如图4填写对话框

8、,完成X3创建三维图形ActiveX控件属性的添加.同理,填加Y和Z属性.在zftCtl中的3.1建立ActiveX控件框架DoPropExchange(),对属性进行初始化,添加如下ApppWizard提供了建立ActiveX控件框架的行:方法.单击File菜单下的New,选择Project,选中PX_String(pPX,0X0,m_x,0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。