【MFC】计算机图形学实验1:熟悉开发环境及工具

 安装 MFC 开发组件:安装 MFC 开发组件

 注意:本实验创建MFC文件时应用程序类型设置成单个文档,图形绘制一般在CView派生类OnDraw消息函数中调用相关函数实现,Windows通过CDC类及成员函数实现对基本图形的绘制、文本及图像的显示。基本图形包括点、直线、多义线、矩形、圆、椭圆等;文本包括相关字体属性的设置及文本的绘制;图像包括图像的缩放以及显示。

MFC学习(可以查阅各种函数用法):官方文档

RGB 表:RGB对照表

 

实验要求: 1、 参看下面的图形,请采用 GDI 编程实现。

486ce89b718943d691a4593a4aa2ad75.png

 

功能模块图

0acd09de1eb2452a89e81a4a8511d654.png

 

显示设置模块

设定线条属性:先通过CPen类成员函数CreatePen()创建画笔,设置画笔的颜色,类型以及宽度,然后通过CDC的SelectObject选择创建的画笔。

  设置图形填充并且设置填充颜色:采用了CBrush作为绘制工具,先通过CBrush类成员函数CreateSolidBrush()创建刷子,并设置填充颜色,然后通过CDC的SelectObject选择创建的刷子。

  设定文本的显示参数:先通过CFont类成员函数CreateFont()创建指定特征的逻辑字体,设置字体的逻辑高度、逻辑宽度、显示角度、磅数、是否为斜体、所用字体名称等,然后通过CDC的SelectObject选择创建的字体。

 

 直线模块

 

计算两点坐标与直线绘制:计算出直线的起点和终点坐标,调用CDC的MoveTo将画笔移动到对应的位置,最后通过LineTo绘制出对应的直线

 

多边形模块

八边形所有顶点的计算与绘制:若将八边形内部切分成八个三角形,则每个三角形顶角为45°。通过该角的正余弦、中心与顶点的距离以及八边形中心坐标从上方顶点开始按顺时针顺序计算出多边形所有顶点坐标并存入CPoint类型数组points8,调用CDC的Polygon绘制出八边形。

箭头模块

箭头三角形三个顶点的计算与绘制:三角形的两腰长选定为3.5 * 8,顶角角度设为30°,先计算出在圆上选定的三角形的顶点,再计算出其他两个顶点坐标并均存入CPoint类型数组points,调用CDC的Polygon绘制出三角形且填充为黑色。
直线坐标计算与绘制:计算出三角形底边中点作为直线一段坐标,另一端有两种情况:一是连接箭头,按同样方法计算;二是仅为直线,则和已经选定的直线角度保持一致:选择一个比半径稍大或稍小的值,横纵坐标加减同样角度的正余弦值乘以这个值得到的偏移量,即是在半径不同的同心圆上找一个点。绘制同直线模块所述。

文本模块

文本显示:在每次用CreateFont设置好字体的高度、宽度、颜色、角度等属性后,根据要标注的直线位置坐标,选择合适的偏移量得到文本字符串的坐标。调用CDC的函数TextOut绘制文本。

 

代码:

【【MFC】计算机图形学实验:熟悉开发环境及工具(代码) - CSDN App】http://t.csdnimg.cn/mRnQi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guts350

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值