计算机图形学实验报告—图形与文本

2019-08-20 20:38

Windows编程实验报告

题 目:专 业:班 级:学 号:姓 名:指导老师:

图形与文本 2014年10月19日

一、实验目的 熟悉MFC技术中图形和文本的使用。 二、实验环境 Windows7操作系统,VC++6.0 三、实验内容 【程序1:】 编写一个单文档的应用程序,在视图窗口中显示一行文本,要求文本颜色为红色,背景色为黄色。 关键代码:

void CSy2_1View::OnDraw(CDC* pDC) { CSy2_1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CString outstr = \显示一行文本\ pDC->SetBkColor(RGB(255,255,0)); pDC->SetTextColor(RGB(255,0,0)); pDC->TextOut(100,100,outstr); }

结果截图:

【程序2:】 编写一个单文档的应用程序,在客户区使用不同的画笔和画刷绘制点、折线、曲线、圆角矩形、弧、扇形和多边形等几何图形。

关键代码:

void CSy2_2View::OnDraw(CDC* pDC) { CSy2_2Doc* pDoc = GetDocument();

1

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here CPen *PenOld,PenNew;

CBrush *BrushOld,BrushNew;

COLORREF rgbColor[] = {RGB(255,0,0),RGB(0,255,0),RGB(0,0,255),RGB(255,255,0)}; //画一个矩形

PenNew.CreatePen(PS_SOLID,4,rgbColor[1]); BrushNew.CreateSolidBrush(rgbColor[3]); PenOld = pDC->SelectObject(&PenNew); BrushOld = pDC->SelectObject(&BrushNew); pDC->Rectangle(20,200,200,300); PenNew.DeleteObject(); BrushNew.DeleteObject();

//画一个椭圆弧线

PenNew.CreatePen(PS_DASH,1,rgbColor[0]); BrushNew.CreateSolidBrush(rgbColor[2]); pDC->SelectObject(&PenNew); pDC->SelectObject(&BrushNew);

pDC->Arc(20,200,200,300,200,250,20,200); PenNew.DeleteObject(); BrushNew.DeleteObject();

//画一个扇形

PenNew.CreatePen(PS_SOLID,1,rgbColor[2]); BrushNew.CreateSolidBrush(rgbColor[0]); pDC->SelectObject(&PenNew); pDC->SelectObject(&BrushNew);

pDC->Pie(420,120,540,240,520,160,420,180); PenNew.DeleteObject(); BrushNew.DeleteObject();

//画一条折线

PenNew.CreatePen(PS_SOLID,1,rgbColor[2]); pDC->SelectObject(&PenNew);

POINT pt[3]={{10,100},{50,60},{120,80}}; pDC->Polyline(pt,3); PenNew.DeleteObject();

//画一个点

pDC->SetPixel(CPoint(150,150),rgbColor[0]); //画一个圆角矩形

PenNew.CreatePen(PS_SOLID,1,rgbColor[1]); BrushNew.CreateSolidBrush(rgbColor[2]); pDC->SelectObject(&PenNew);

2

pDC->SelectObject(&BrushNew);

pDC->RoundRect(210,210,410,410,30,30); PenNew.DeleteObject(); BrushNew.DeleteObject();

//画一条曲线

PenNew.CreatePen(PS_SOLID,1,rgbColor[1]); pDC->SelectObject(&PenNew);

POINT pt1[4] = {{20,100},{50,60},{120,80},{150,160}}; pDC->PolyBezier(pt1,4); PenNew.DeleteObject();

//画一个多边形 PenNew.CreatePen(PS_SOLID,1,rgbColor[2]); BrushNew.CreateSolidBrush(rgbColor[1]); pDC->SelectObject(&PenNew); pDC->SelectObject(&BrushNew); POINT pt2[4] = {{130,100},{160,60},{220,80},{250,160}}; pDC->Polygon(pt2,4); PenNew.DeleteObject(); BrushNew.DeleteObject(); pDC->SelectObject(PenOld); pDC->SelectObject(BrushOld); }

结果截图:

3

【程序3:】 利用函数CreateFontIndirect()创建黑体字体,字体高度为30像素,宽度为25像素,并利用函数DrawText()在客户区以该字体输出文本“VC++”。

关键代码:

void CSy2_3View::OnDraw(CDC* pDC) { CSy2_3Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CFont *OldFont,NewFont; LOGFONT MyFont = {30,25,0,0,0,1,1,0,ANSI_CHARSET, }

OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,\黑体\NewFont.CreateFontIndirect(&MyFont); OldFont = pDC->SelectObject(&NewFont); CRect rect;

rect.SetRect(CPoint(150,150),CPoint(250,250)); pDC->DrawText(\pDC->SelectObject(OldFont); NewFont.DeleteObject();

结果截图:

4


计算机图形学实验报告—图形与文本.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《锦州我心目中的世园》讲演稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: