C语言api绘图,绘图的API函数

绘图的API函数

一、 实验目的

学习使用嵌入式系统的绘图API 函数。理解绘图设备上下文(DC)在多任务操作系统

中的作用。会使用绘图设备上下文(DC)在屏幕上绘制一个圆角矩形和一个圆。了解绘制

动画防止闪烁的基本原理,可以实现无闪烁的动画。

二、 实验内容

本次实验通过使用嵌入式系统的绘图API 函数,首先,在屏幕上绘制一个圆角矩形和

一个整圆。然后,再在屏幕上无闪烁的绘制一个移动的正弦波。

三、 预备知识

1、用ARM SDT 2.5 集成开发环境,编写和调试程序的基本过程。

2、基于操作系统的应用程序的框架结构。

3、会使用Source Insight 3 编辑C 语言源程序

四、 实验设备及工具(包括软件调试工具)

硬件:ARM 嵌入式开发板、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentumn100 以

软件:PC 机操作系统win98、ARM SDT 2.51 集成开发环境、仿真器驱动程序、Source

Insight 3

五、 实验步骤

1、在ARM SDT 2.51 中,使用实验一中创建好的模板,新建一个项目work1。把操作

系统的所需要的头文件(*.h)和库文件(*.alf)加入工程中。

2、用Source Insight 3 创建一个工程,把work1 中的C 语言源文件文件加入。

3、编辑Main。c 文件,在Main_Task 任务中加入代码。使用操作系统的绘图API 函数,

绘制出如图所示的图形。

提示:

⑴ 绘图必须通过使用绘图设备上下文(DC)来实现。绘图设备上下文(DC)中

包括了与绘图相关的信息,比如:画笔的宽度、绘图的原点等等。这样,在多任务系统

中,不同的任务通过不同的绘图设备上下文(DC)绘图才不会互相影响。

⑵ 绘制整圆可以用Circle 函数,绘制直线用Line 函数,绘制圆弧用ArcTo 函数。

调试的过程中可以在每条的绘图函数之后调用OSTimeDly()函数,使系统更新显示,输

出到液晶屏上,具体的细节原因见步骤5 的提示。

⑶ 为方便绘图,可使用SetDrawOrg 函数设置绘图的原点。

⑷ 因为本次实验不用系统的字符显示,所以,可以去掉Main()函数中LoadFont()

函数,以节省系统启动的时间。

4、用ARM SDT 2.5 编译、下载并调试上述程序,检查运行结果

5、在屏幕上无闪烁的绘制一个移动的正弦波。

提示:

⑴ 在操作系统中,液晶显示屏的刷新是通过LCD_Fresh_Task 任务完成的。绘图

首先是在绘图缓冲区中完成的,然后,系统自动(也可以通过设置绘图设备上下文屏,

不让系统自动刷新)的向Lcd_Fresh_Task 发送的更新消息。其流程图如图所示。

a4e889b1c032540ad8a8f162f8fab002.png

⑵ 因为绘图是在后台进行的,绘制完成之后,再更新到液晶屏上,所以,在绘图

的时候不用担心反覆的擦除屏幕会引起屏幕的闪烁,这样,可以很方便的实现动画无闪

烁的显示。

⑶ 绘制完一次图形以后,必须要使用OSTimeDly()给出一定时间的延时(推荐用

200),同时,使Main_Task 任务主动让出对CPU 的控制权,使Lcd_Fresh_Task 任务可

以完成刷新。

⑷ 因为绘图需要使用sin()函数,所以需要在main。c 中加入#include 。

⑸ 为方便绘图,可使用SetDrawOrg 函数设置绘图的原点。

6、用ARM SDT 2.5 编译、下载并调试上述程序,检查运行结果

7、生成发行版本的.bin 文件,通过USB 下载到嵌入式开发板中,运行并检查输出结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值