• 大小: 3.84M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-19
  • 语言: 其他
  • 标签: 其他  

资源简介

案例11-二维图形几何变换算法.zip

资源截图

代码片段和文件信息

// Line.cpp: implementation of the CLine class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “Line.h“
#include “math.h“
#define Round(d) int(floor(d+0.5))//四舍五入宏定义
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CLine::CLine()


}

CLine::~CLine()
{

}

void CLine::MoveTo(CDC *pDCCP2 p0)//绘制直线起点函数
{
P0=p0;
}

void CLine::MoveTo(CDC *pDCdouble x0double y0)//重载函数
{
P0=CP2(x0y0);
}

void CLine::LineTo(CDC *pDCCP2 p1)
{
P1=p1;
CP2 pt;
CRGB clr=CRGB(0.00.00.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 {
pDC->SetPixelV(Round(p.x)Round(p.y)RGB(clr.red*255clr.green*255clr.blue*255));
}
}
else
{
double kd;
k=(P1.y-P0.y)/(P1.x-P0.x);
if(k>1.0)//绘制k>1
{
if(P0.y>P1.y)
{
t=P0;P0=P1;P1=t;
}
d=1-0.5*k;
for(p=P0;p.y {
pDC->SetPixelV(Round(p.x)Round(p.y)RGB(clr.red*255clr.green*255clr.blue*255));
                if(d>=0)
{
p.x++;
d+=1-k;
}
else 
                    d+=1;       
}
}
if(0.0<=k && k<=1.0)//绘制0<=k<=1
{
if(P0.x>P1.x)
{
t=P0;P0=P1;P1=t;
}
d=0.5-k; 
for(p=P0;p.x {
pDC->SetPixelV(Round(p.x)Round(p.y)RGB(clr.red*255clr.green*255clr.blue*255));
                if(d<0)
{
p.y++;
d+=1-k;
}
else 
d-=k;
}
}
if(k>=-1.0 && k<0.0)//绘制-1<=k<0
{
if(P0.x>P1.x)
{
t=P0;P0=P1;P1=t;
}
d=-0.5-k;
            for(p=P0;p.x {
pDC->SetPixelV(Round(p.x)Round(p.y)RGB(clr.red*255clr.green*255clr.blue*255));
                if(d>0)
{
p.y--;
d-=1+k;
}
else 
d-=k;
}
}
if(k<-1.0)//绘制k<-1 
{
if(P0.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*255clr.green*255clr.blue*255));
                if(d<0)
{
p.x++;
d-=1+k;
}
else 
d-=1;           
}
}
}
P0=p1;
}
void CLine::LineTo(CDC *pDCdouble x1double y1)//重载函数
{
LineTo(pDCCP2(x1y1));
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-10-28 16:36  案例11-二维图形几何变换算法\
     目录           0  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\
     文件       17220  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\Line.obj
     文件        7591  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\Line.sbr
     文件       20214  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\MainFrm.obj
     文件        5064  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\MainFrm.sbr
     文件       20730  2017-10-27 21:48  案例11-二维图形几何变换算法\Debug\P2.obj
     文件        8517  2017-10-27 21:48  案例11-二维图形几何变换算法\Debug\P2.sbr
     文件       19571  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\RGB.obj
     文件        5621  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\RGB.sbr
     文件      105897  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\StdAfx.obj
     文件     1371518  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\StdAfx.sbr
     文件      270434  2017-10-27 22:07  案例11-二维图形几何变换算法\Debug\Test.exe
     文件      360328  2017-10-27 22:07  案例11-二维图形几何变换算法\Debug\Test.ilk
     文件       23505  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\Test.obj
     文件     7009284  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\Test.pch
     文件      386048  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\Test.pdb
     文件      111536  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\Test.res
     文件       11299  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\Test.sbr
     文件       14917  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\TestDoc.obj
     文件        4465  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\TestDoc.sbr
     文件       48335  2017-10-27 22:07  案例11-二维图形几何变换算法\Debug\TestView.obj
     文件       16917  2017-10-27 22:07  案例11-二维图形几何变换算法\Debug\TestView.sbr
     文件       17426  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\Transform .obj
     文件        9206  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\Transform .sbr
     文件      353280  2017-10-27 22:07  案例11-二维图形几何变换算法\Debug\vc60.idb
     文件      372736  2017-10-21 16:26  案例11-二维图形几何变换算法\Debug\vc60.pdb
     文件        2589  2017-10-08 10:04  案例11-二维图形几何变换算法\Line.cpp
     文件         712  2017-10-08 10:04  案例11-二维图形几何变换算法\Line.h
     文件        2363  2017-10-08 10:04  案例11-二维图形几何变换算法\MainFrm.cpp
     文件        1440  2017-10-08 10:04  案例11-二维图形几何变换算法\MainFrm.h
............此处省略39个文件信息

评论

共有 条评论