- 0
- 0
- 约3.8万字
- 约 65页
- 2019-10-21 发布于湖北
- 举报
第五章 场 景 绘 制 与 交 互
Intra3D 2.0体系结构中的前三层均与窗口系统无关,但是图形不能画在脑子里,交互不能靠嘴巴来实现。第四层“绘制与交互层”必须与窗口系统相关。
本章重点讲述场景视窗程序SceneView与简单视窗程序Window3D的设计。SceneView用于构造交互式3D应用软件的主界面,Window3D用于构造3D对话。
5.1 场景视窗SceneView的设计
三维图形的交互式绘制是程序员面临的主要困难之一。Intra3D场景视窗程序SceneView封装了交互式绘制的所有细节,如消息处理、场景节点的遍历绘制、多重采样消锯齿、鼠标交互等。SceneView为开发者提供简洁的编程接口,可以快速创建交互式3D应用程序框架。
C++类库中的SceneView程序见Intra3D-DLL\Include\Layer4\SceneView.h和Intra3D-DLL\Layer4\SceneView.cpp。COM库中的程序见Intra3D-COM\Layer4\ SceneView.h和SceneView.cpp。
由于SceneView与窗口相关,使得类库中的SceneView程序与COM库中的程序有些差别。COM对象SceneView更确切地应该称为ActiveX控件,它具有方法、事件和属性。本节先分四小节论述类SceneView的设计,再论述ActiveX控件SceneView的设计。
类SceneView是Visual C++ MFC中CView的派生类,其声明如下:
class SceneView : public CView
{
public:
SceneView(void;
~SceneView(void;
DECLARE_DYNCREATE(SceneView
//----------------------------------- 用于设置场景绘制、动画的函数 -------------------------------------
void SetClearColor(float red,float green,float blue,float alpha=0.0f; // 设置背景颜色
void GetClearColor(float *red, float *green, float *blue, float *alpha; // 获取背景颜色
void SetSceneRoot(SceneNode * node; // 设置当前场景的跟节点
SceneNode *GetSceneRoot(void; // 获取当前的场景的跟节点
void EnableAnimate(void; // 使场景处于动画状态
void DisableAnimate(void; // 停止场景的动画
BOOL IsAnimateEnabled(void; // 检查场景是否处于动画状态
void EnableAntialiasing(int jitterTimes; // 启用多重采样消锯齿
void DisableAntialiasing(void; // 停止多重采样消锯齿
void GetAntialiasingInfo(BOOL *bAntialiasing, int *jitterTimes; // 获取消锯齿的信息
virtual void InitScene(void; // 用户定义的场景初始化函数
virtual void ControlAnimate(void; // 用户定义的动画函数,控制各节点的运动
void Run(void; // 执行绘制与动画
BOOL SaveAsBMP(char *strFile; // 将当前窗口的 3D 图形保存为 BMP 图像
public: //------------------------------------------ 用于交互的函数 ----------------------------------------
void SelectNode(char *name; // 拾取当前场景的某个节点
void SelectNode(SceneNode * node; // 拾取当前场景的某个节点
void UnselectNode(void; // 取消已拾取的节点
void SetMouseInteraction(int type; // 设置鼠标交互的方式
int GetMouseInteraction(void; // 获取鼠标交互的方式
//---------------------------- SceneView 标准 3D 交互,有对应的工具条 -----------------------------
af
您可能关注的文档
- 第五章 语文知识教学的设计与实施.ppt
- 第五章:数据包络分析.doc
- 第五课着眼未来永续未来教材分析及教学设计说明.ppt
- 第五课第二框尊重和维护隐私权》教学实施计划.ppt
- 第五章__公共权力与公共伦理(最新)(1).ppt
- 第五章《交通运输布局及其影响》综合检测.doc
- 第五章__设施布置设计(工厂布局设计).ppt
- 第五节矿产资源合理开发和区域可持续发展.ppt
- 第五章sqlserver数据管理.doc
- 第五章 建筑构造概论.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 2013款比亚迪M6新版电路图(含488、电动滑门及全景影像).pdf VIP
- CECS19-1990 混凝土排水管道工程闭气检验标准.docx VIP
- DB21_T 4245-2025 地理标志产品 抚顺林下参.docx VIP
- DB21_T 4246-2025 农产品地理标志产品 新宾大米.docx VIP
- DB21_T 4249-2025 林下辽细辛种植技术规程.docx VIP
- 2026年深圳中考历史命题趋势预测试卷(附答案可下载).docx VIP
- 2026年深圳中考物理命题趋势预测试卷(附答案可下载).docx VIP
- 高维空间的时空紧致化.pdf
- 林下种植实施方案.docx VIP
- [臺 灣文獻叢刊077]天妃顯聖錄.pdf VIP
原创力文档

文档评论(0)