资源简介
2019年写的代码!很新!可用!大学计算机图形学课程作业代码,使用双缓冲技术,实现平移、比例、旋转、反射错切变换。自用,代码完整。打包下载,可直接运行。c/c++语言MFC实现。支持vs。
代码片段和文件信息
#include “stdafx.h“
#include “Line.h“
#include “RGB.h“
#define ROUND(d) int(floor(d+0.5)) //四舍五入
CLine::CLine()
{
}
CLine::~CLine()
{
}
// 移动到指定位置
void CLine::MoveTo(CDC *pDC CP2 p0)
{
// TODO: 在此处添加实现代码.
P0 = p0;
}
void CLine::MoveTo(CDC *pDC double x0 double y0) //重载函数
{
P0 = CP2(x0 y0);
}
void CLine::LineTo(CDC *pDC CP2 p1)
{
// TODO: 在此处添加实现代码.
P1 = p1;
CP2 p t;
CRGB clr = CRGB(0.0 0.0 1.0);
//绘制垂线
if (fabs(P0.x - P1.x) < 1e-6)
{
if (P0.y > P1.y) //交换顶点,使得起始点低于终点
{
t = P0; P0 = P1; P1 = t;
}
for (p = P0; p.y < P1.y; p.y++)
{
pDC->SetPixelV(ROUND(p.x) ROUND(p.y)
RGB(clr.red * 255 clr.green * 255 clr.blue * 255));
}
}
else
{
double k d;
k = (P1.y - P0.y) / (P1.x - P0.x);
//绘制k > 1
if (k > 1.0)
{
if (P0.y > P1.y)
{
t = P0; P0 = P1; P1 = t;
}
d = 1 - 0.5*k;
for (p = P0; p.y < P1.y; p.y++)
{
pDC->SetPixelV(ROUND(p.x) ROUND(p.y)
RGB(clr.red * 255 clr.green * 255 clr.blue * 255));
if (d >= 0)
{
p.x++;
d += 1 - k;
}
else
d += 1;
}
}
//绘制0<=k<=1
if (0.0 <= k && k <= 1.0)
{
if (P0.x > P1.x)
{
t = P0; P0 = P1; P1 = t;
}
d = 0.5 - k;
for (p = P0; p.x < P1.x; p.x++)
{
pDC->SetPixelV(ROUND(p.x) ROUND(p.y)
RGB(clr.red * 255 clr.green * 255 clr.blue * 255));
if (d < 0)
{
p.y++;
d += 1 - k;
}
else
d -= k;
}
}
//绘制-1<=k<0
if (k >= -1.0 && k < 0.0)
{
if (P0.x > P1.x)
{
t = P0; P0 = P1; P1 = t;
}
d = -0.5 - k;
for (p = P0; p.x < P1.x; p.x++)
{
pDC->SetPixelV(ROUND(p.x) ROUND(p.y)
RGB(clr.red * 255 clr.green * 255 clr.blue * 255));
if (d > 0)
{
p.y--;
d -= 1 + k;
}
else
d -= k;
}
}
//绘制k<-1
if (k < -1.0)
{
if (P0.y < P1.y)
{
t = P0; P0 = P1; P1 = t;
}
d = -1 - 0.5*k;
for (p = P0; p.y > P1.y; p.y--)
{
pDC->SetPixelV(ROUND(p.x) ROUND(p.y)
RGB(clr.red * 255 clr.green * 255 clr.blue * 255));
if (d < 0)
{
p.x++;
d = d - 1 - k;
}
else
d -= 1;
}
}
}
P0 = p1;
}
void CLine::LineTo(CDC *pDC double x1 double y1)
{
LineTo(pDC CP2(x1 y1));
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 38912 2019-11-08 16:40 Test4 - 副本\.vs\Test4\v15\.suo
文件 78364672 2019-11-08 16:40 Test4 - 副本\.vs\Test4\v15\Browse.VC.db
文件 121634816 2019-11-08 16:22 Test4 - 副本\.vs\Test4\v15\ipch\55490e51d6461155.ipch
文件 23108 2019-11-08 15:41 Test4 - 副本\Debug\Line.obj
文件 69049 2019-11-07 13:05 Test4 - 副本\Debug\MainFrm.obj
文件 20439 2019-11-08 15:41 Test4 - 副本\Debug\P2.obj
文件 23640 2019-10-31 11:11 Test4 - 副本\Debug\RGB.obj
文件 1007747 2019-10-31 11:11 Test4 - 副本\Debug\stdafx.obj
文件 288256 2019-11-08 16:31 Test4 - 副本\Debug\Test4.exe
文件 3231328 2019-11-08 16:31 Test4 - 副本\Debug\Test4.ilk
文件 96 2019-11-08 16:31 Test4 - 副本\Debug\Test4.log
文件 53870 2019-11-08 15:41 Test4 - 副本\Debug\Test4.obj
文件 56819712 2019-10-31 11:11 Test4 - 副本\Debug\Test4.pch
文件 3313664 2019-11-08 16:31 Test4 - 副本\Debug\Test4.pdb
文件 99444 2019-11-07 13:12 Test4 - 副本\Debug\Test4.res
文件 13026 2019-11-08 16:31 Test4 - 副本\Debug\Test4.tlog\CL.command.1.tlog
文件 200320 2019-11-08 16:31 Test4 - 副本\Debug\Test4.tlog\CL.read.1.tlog
文件 12662 2019-11-08 16:31 Test4 - 副本\Debug\Test4.tlog\CL.write.1.tlog
文件 4072 2019-11-08 16:31 Test4 - 副本\Debug\Test4.tlog\li
文件 12874 2019-11-08 16:31 Test4 - 副本\Debug\Test4.tlog\li
文件 1968 2019-11-08 16:31 Test4 - 副本\Debug\Test4.tlog\li
文件 638 2019-11-07 13:12 Test4 - 副本\Debug\Test4.tlog\rc.command.1.tlog
文件 8988 2019-11-07 13:12 Test4 - 副本\Debug\Test4.tlog\rc.read.1.tlog
文件 286 2019-11-07 13:12 Test4 - 副本\Debug\Test4.tlog\rc.write.1.tlog
文件 215 2019-11-08 16:31 Test4 - 副本\Debug\Test4.tlog\Test4.lastbuildstate
文件 94211 2019-11-07 13:05 Test4 - 副本\Debug\Test4Doc.obj
文件 72932 2019-11-08 16:31 Test4 - 副本\Debug\Test4View.obj
文件 25523 2019-11-08 15:41 Test4 - 副本\Debug\Transform.obj
文件 26143 2019-10-30 17:36 Test4 - 副本\Debug\transform.obj.enc
文件 1444864 2019-11-08 16:31 Test4 - 副本\Debug\vc141.idb
............此处省略57个文件信息
相关资源
- VS2015MFC+Opencv2 打开图片及简单的图像
- MFC学生信息管理系统
- VS2013写的MFC多线程多串口编程,多串
- MFC处理Excel文件
- VC++MFC封装的圆形按钮类
- mfc 串口数据绘曲线图
- MFC编程自己的简单记事本教学视频和
- MFCApplication1.zip
- MFC实现获取Edit控件内容写入本地TXT文
- 利用mfc实现的udp通信,包括,客户端
- 车牌识别系统源代码
- 非常完整的ffmpeg+mfc播放器
- MFC 编写的文本编辑器
- 北邮程序实践--基于VS2010MFC的简单聊天
- 基于mfc和opengl的6R机械臂仿真程序
- MFC 美化界面代码
- 制作带MFC界面的DLL以及调用
- 基于mfc十段均衡器的设计
- 深入浅出MFC简体中文版侯俊杰
- MFC快速实现对话框等比例的放大缩小
- vs2010 MFC+ADO方式连接sql server实现商品
- MFC-MCI简单音乐播放器源码
- MFC对话框中从文件中插入图片VS2010
- 《C++游戏开发》笔记十一 平滑动画
- 《MFC游戏开发》笔记十 碰撞检测 配套
- 《MFC游戏开发》笔记三 透明贴图 配套
- 《MFC游戏开发》笔记八 粒子系统 配套
- MFC实现实时曲线显示
- MFC CSerialPort类串口通信
- mfc+opencv读取摄像头视频并实现抓图
评论
共有 条评论