计算机图形学MFC-双缓冲二维图形几何变换算法-c/c++代码 .rar


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 - 副本.vsTest4v15.suo

     文件   78364672  2019-11-08 16:40  Test4 - 副本.vsTest4v15Browse.VC.db

     文件  121634816  2019-11-08 16:22  Test4 - 副本.vsTest4v15ipch55490e51d6461155.ipch

     文件      23108  2019-11-08 15:41  Test4 - 副本DebugLine.obj

     文件      69049  2019-11-07 13:05  Test4 - 副本DebugMainFrm.obj

     文件      20439  2019-11-08 15:41  Test4 - 副本DebugP2.obj

     文件      23640  2019-10-31 11:11  Test4 - 副本DebugRGB.obj

     文件    1007747  2019-10-31 11:11  Test4 - 副本Debugstdafx.obj

     文件     288256  2019-11-08 16:31  Test4 - 副本DebugTest4.exe

     文件    3231328  2019-11-08 16:31  Test4 - 副本DebugTest4.ilk

     文件         96  2019-11-08 16:31  Test4 - 副本DebugTest4.log

     文件      53870  2019-11-08 15:41  Test4 - 副本DebugTest4.obj

     文件   56819712  2019-10-31 11:11  Test4 - 副本DebugTest4.pch

     文件    3313664  2019-11-08 16:31  Test4 - 副本DebugTest4.pdb

     文件      99444  2019-11-07 13:12  Test4 - 副本DebugTest4.res

     文件      13026  2019-11-08 16:31  Test4 - 副本DebugTest4.tlogCL.command.1.tlog

     文件     200320  2019-11-08 16:31  Test4 - 副本DebugTest4.tlogCL.read.1.tlog

     文件      12662  2019-11-08 16:31  Test4 - 副本DebugTest4.tlogCL.write.1.tlog

     文件       4072  2019-11-08 16:31  Test4 - 副本DebugTest4.tloglink.command.1.tlog

     文件      12874  2019-11-08 16:31  Test4 - 副本DebugTest4.tloglink.read.1.tlog

     文件       1968  2019-11-08 16:31  Test4 - 副本DebugTest4.tloglink.write.1.tlog

     文件        638  2019-11-07 13:12  Test4 - 副本DebugTest4.tlog
c.command.1.tlog

     文件       8988  2019-11-07 13:12  Test4 - 副本DebugTest4.tlog
c.read.1.tlog

     文件        286  2019-11-07 13:12  Test4 - 副本DebugTest4.tlog
c.write.1.tlog

     文件        215  2019-11-08 16:31  Test4 - 副本DebugTest4.tlogTest4.lastbuildstate

     文件      94211  2019-11-07 13:05  Test4 - 副本DebugTest4Doc.obj

     文件      72932  2019-11-08 16:31  Test4 - 副本DebugTest4View.obj

     文件      25523  2019-11-08 15:41  Test4 - 副本DebugTransform.obj

     文件      26143  2019-10-30 17:36  Test4 - 副本Debug ransform.obj.enc

     文件    1444864  2019-11-08 16:31  Test4 - 副本Debugvc141.idb

............此处省略57个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)