資源簡介
本系統需要實現以下內容:
1、給出系統框架。
2、調用畫點的函數,分別用DDA、中點Bresenham算法和改進Bresenham算法繪制直線和中點算法繪制直線、用不同的算法繪制圓和橢圓 ,并各自比較算法精度與效率的差別 。
3、實現二維圖形的變換。(包括平移,放縮,旋轉,錯切以及復合變換)
4、運用所學的區域填充算法實現區域填充。
5、運用所學算法實現線段裁剪以及多邊形裁剪(多邊形裁剪為可選)。
6、自己實現其它附加以及需要完善的功能。
代碼片段和文件信息
//?Circle.cpp:?implementation?of?the?CCircle?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“Graph.h“
#include?“Circle.h“
#include?“math.h“
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCircle::CCircle()
{
}
CCircle::~CCircle()
{
}
void?CCircle::CircleMidPoint(CDC?*pDC?int?ptCenterx?int?ptCentery?int?r?COLORREF?color)
{
int?ptxpty;
??ptx?=0;pty?=r;int?p=1-r;
??CirclePlotPoint(pDCptCenterxptCenteryptxptycolor);
??while(ptx? ??{ptx?++;
??if(p<0)?p+=2*ptx?+1;else{pty--;
??p+=2*(ptx?-pty)+1;
??}
CirclePlotPoint(pDCptCenterxptCenteryptxptycolor);
??}
}
void?CCircle::CirclePlotPoint(CDC?*pDC?int?ptCenterx?int?ptCentery?int?ptx?int?pty?COLORREF?color)
{
pDC->SetPixel(ptCenterx+ptxptCentery+ptycolor);
pDC->SetPixel(ptCenterx-ptxptCentery+ptycolor);
pDC->SetPixel(ptCenterx+ptxptCentery-ptycolor);
pDC->SetPixel(ptCenterx-ptxptCentery-ptycolor);
pDC->SetPixel(ptCenterx+ptyptCentery+ptxcolor);
pDC->SetPixel(ptCenterx-ptyptCentery+ptxcolor);
pDC->SetPixel(ptCenterx+ptyptCentery-ptxcolor);
pDC->SetPixel(ptCenterx-ptyptCentery-ptxcolor);
}
void?CCircle::draw(CDC?*pDC)
{
int?ptCenterx=(m_ptBegin.x+m_ptEnd.x)/2;
int?ptCentery=(m_ptBegin.y+m_ptEnd.y)/2;
int?t1=(m_ptBegin.x-m_ptEnd.x)*(m_ptBegin.x-m_ptEnd.x);
int?t2=(m_ptBegin.y-m_ptEnd.y)*(m_ptBegin.y-m_ptEnd.y);
int?r=(int)sqrt(t1+t2);
CircleMidPoint(pDC?ptCenterxptCenteryrm_color);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1750??2003-11-01?22:36??0432\0432\Circle.cpp
?????文件????????742??2003-11-01?22:36??0432\0432\Circle.h
?????文件???????7036??2010-06-16?10:30??0432\0432\Debug\Circle.obj
?????文件???????6903??2010-06-16?10:30??0432\0432\Debug\Circle.sbr
?????文件???????8347??2010-06-16?10:30??0432\0432\Debug\Element.obj
?????文件???????3115??2010-06-16?10:30??0432\0432\Debug\Element.sbr
?????文件???????7741??2010-06-16?10:30??0432\0432\Debug\Ellipse.obj
?????文件???????3793??2010-06-16?10:30??0432\0432\Debug\Ellipse.sbr
?????文件?????143410??2010-06-16?10:30??0432\0432\Debug\Graph.exe
?????文件?????355464??2010-06-16?10:30??0432\0432\Debug\Graph.ilk
?????文件??????22626??2010-06-16?10:30??0432\0432\Debug\Graph.obj
?????文件????6871972??2010-06-16?10:30??0432\0432\Debug\Graph.pch
?????文件?????377856??2010-06-16?10:30??0432\0432\Debug\Graph.pdb
?????文件??????11732??2010-06-16?10:30??0432\0432\Debug\Graph.res
?????文件??????12202??2010-06-16?10:30??0432\0432\Debug\Graph.sbr
?????文件??????14330??2010-06-16?10:30??0432\0432\Debug\GraphDoc.obj
?????文件???????3460??2010-06-16?10:30??0432\0432\Debug\GraphDoc.sbr
?????文件??????51987??2010-06-16?10:30??0432\0432\Debug\GraphView.obj
?????文件??????19801??2010-06-16?10:30??0432\0432\Debug\GraphView.sbr
?????文件???????5826??2010-06-16?10:30??0432\0432\Debug\Line.obj
?????文件???????3022??2010-06-16?10:30??0432\0432\Debug\Line.sbr
?????文件??????19579??2010-06-16?10:30??0432\0432\Debug\MainFrm.obj
?????文件???????4025??2010-06-16?10:30??0432\0432\Debug\MainFrm.sbr
?????文件??????10019??2010-06-16?10:30??0432\0432\Debug\RGBDialog.obj
?????文件???????2710??2010-06-16?10:30??0432\0432\Debug\RGBDialog.sbr
?????文件???????9947??2010-06-16?10:30??0432\0432\Debug\RGBFill.obj
?????文件???????2665??2010-06-16?10:30??0432\0432\Debug\RGBFill.sbr
?????文件??????10029??2010-06-16?10:30??0432\0432\Debug\Rotate.obj
?????文件???????2672??2010-06-16?10:30??0432\0432\Debug\Rotate.sbr
?????文件??????10057??2010-06-16?10:30??0432\0432\Debug\Scale.obj
............此處省略61個文件信息
- 上一篇:南通大學計算機組成原理課程設計
- 下一篇:LogiCAD編程軟件
評論
共有 條評論