系列链接
概述
本文使用MFC的CDC类绘制三维坐标系及球面函数。首先计算推导出三维坐标在二维平面显示的坐标变换方程(使用斜二测视图),使用球面的参数方程,然后定义图形缩放比例规模、坐标轴位移,变换坐标系和规模等,最后绘制坐标轴及球面函数。
如果对绘制二维坐标系还不太熟悉可以先看上面系列链接的:使用MFC的CDC类绘制二维坐标系及正余弦函数,本文对二维绘制及绘制函数部分不再赘述。因为二维坐标系的博文已经分模块讲解地比较清楚了,而与三维坐标系的基本思路相同,所以本文大部分直接使用注释讲解。
三维转二维的推导
上图可知,只要使用Transform3Dto2D()
函数,即可方便的把三维坐标转化为二维坐标(斜二测视图)。
球面参数方程
在三维空间直角坐标系中,以原点为球心、半径为 r
的球面的方程为 x^2 + y^2 + z^2 = r^2
,其参数方程为
新建项目
Visual Studio
- 新建项目
- MFC应用程序
- 命名为GraphicsExercise3D
- 确定
- 下一步
- 应用程序类型选择单个文档
- 完成
GraphicsExercise3DView.h
在GraphicsExercise3DView.h
添加以下内容
1 | // 操作 |
GraphicsExercise3DView.cpp
引入数学函数库1
#include <math.h>
定义π1
2
3#ifndef PI
#define PI 3.14159
#endif // !PI
在构造函数初始化
1 | CGraphicsExercise3DView::CGraphicsExercise3DView() |
设置初始化参数的Set函数
1 | // 设置规模 |
坐标及规模变换
1 | // 变换规模 |
三维坐标转化为二维坐标
1 | // 使用斜二测视图,把三维坐标点转化为二维平面上的点 |
绘制坐标轴及函数图形
1 | // CGraphicsExercise2View 绘制 |