系列链接
概述
本文使用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 | #ifndef PI |
在构造函数初始化
1 | CGraphicsExercise3DView::CGraphicsExercise3DView() |
设置初始化参数的Set函数
1 | // 设置规模 |
坐标及规模变换
1 | // 变换规模 |
三维坐标转化为二维坐标
1 | // 使用斜二测视图,把三维坐标点转化为二维平面上的点 |
绘制坐标轴及函数图形
1 | // CGraphicsExercise2View 绘制 |
效果图
