说明:本实验代码在vs2022下可正常运行,如需vc6.0版本请联系作者,本实验适配于计算机图形学新版(VC++ MFC )第二版
1.1创建MFC应用程序框架
建议创建项目时名称为:Test
源文件:Line.cpp
头文件:Line.h
其中TestView是框架下自带的,Test是项目名。
1.2设计实现直线绘制类
(1)实验原理
使用中点扫描转换算法进行直线绘制,需要根据斜率k值分别选择不同的误差项和初始值,除垂线外(k=+-∞),可分为k<-1,-1<=k<0,0<=k<=1和k>1四种情况,具体初始值,误差项和递推公式 可自己推,对于k=+-∞,可直接画出垂线,-1<=k<0和0<=k<=1时,X轴方向为主移动方向;k<-1和k>1时,Y轴方向为主移动方向。
(2)"Line.h"头文件的具体代码
#pragma once
class CP2
{
public:
CP2();
virtual~CP2();
CP2(double, double);
public:
double x;
double y;
};
class CLine
{
public:
CLine();
virtual~CLine();
void SetLineColor(COLORREF);
void MoveTo(CP2);
void MoveTo(double, double);
void LineTo(CP2, CDC*);
void LineTo(double, double, CDC*);
public:
CP2 P0;
CP2 P1;
COLORREF clr;
};
1.3新建Line源文件
Line.cpp源文件代码实现:
#include"pch.h"
#include"Line.h"
#include"math.h"
#define R