野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 64938|回复: 147

[emWin] 【emWin5.20使用教程】第三期:2-D绘图

  [复制链接]
发表于 2013-5-26 21:50:20 | 显示全部楼层 |阅读模式
说明: (野火团队原创教程,未经许可禁止转载)
         VC6.0  emWin5.20下载地址
         http://pan.baidu.com/share/link?shareid=641741&uk=286563520
         uCGUIBulder 4.0
         http://pan.baidu.com/share/link?shareid=641752&uk=286563520
         
一. 2-D绘图说明
   emWin 包含完整的2-D 图形库,可供大多数应用程序充分使用。emWin 提供的例程的使用具有
(或没有)裁剪,它们基于快速高效的算法。当前,只有GUI_DrawArc()函数需要浮点计算。2-D绘图的
  例子很多,这里就不一一的讲解了,下面举一个官方的例子进行说明

二.  例程讲解
   这里使用官方的一个例程进行讲解
/*
---------------------------------------------------------------------
File              : 2DGL_DrawScale.c      在官方的例子里面找这个文件就可以
Purpose     : Drawing a scale using GUI-functions

----------------------------------------------------------------------
*/

#include "GUI.h"
#include <math.h>
#include <stddef.h>

#define SPEED 1100

/*******************************************************************
*
*       static code
*
********************************************************************
*/
/*******************************************************************
*
*       _DrawScale

  Drawing a scale using GUI-functions
*/
static void _DrawScale(void) {
//的到屏的的长和宽
  int XSize = LCD_GetXSize();           
  int YSize = LCD_GetYSize();
  int XMid  = XSize / 2;
  int i;
  int r1   = 110;
  int r2   = 140;
  int rt   = 100;
  int y    = 240;
  int step =  15;
  int r = (r1 + r2) / 2;

/* 设置背景的颜色是黑色 */
  GUI_SetBkColor(GUI_BLACK);
/* 一定要加上下面这个清屏指令,这样上面设置背景颜色才能起作用 */
  GUI_Clear();
  GUI_SetColor(GUI_WHITE);
  GUI_SetFont(&GUI_Font24_ASCII);
  GUI_SetTextAlign(GUI_TA_HCENTER);
  GUI_DispStringAt("DrawScale - Sample", 160, 5);
  
  while (1) {
    int c = 0;
    GUI_SetColor(GUI_WHITE);
    GUI_SetFont(&GUI_Font8x16);
    GUI_SetTextAlign(GUI_TA_LEFT);
    GUI_Delay(SPEED / 2);

    /* Display string at specified position, then clear to end of line */
    GUI_DispStringAtCEOL("using", 5, 40);
    GUI_DispStringAtCEOL("GUI_AA_DrawArc", 5, 55);
    GUI_Delay(SPEED * 2);
    /* 设置画线的线宽 */
    GUI_SetPenSize(r2 - r1);
    GUI_SetColor(0x0000AA);
    /* 画一个抗锯齿的弧线, 圆心坐标,水平垂直半径,起始角度,结束角度*/
    /* Displays an antialiased arc at a specified position in the current window, using the
       current pen size and the current pen shape*/

    GUI_AA_DrawArc(XMid, y, r, r, 45, 60);
    GUI_Delay(SPEED);

    /* 继续画弧线,60-90度 */
    GUI_SetColor(0x00AA00);
    GUI_AA_DrawArc(XMid, y, r, r, 60, 90);
    GUI_Delay(SPEED);
   
    /* 画外弧线  内弧线 */
    GUI_SetPenSize(2);
    GUI_SetColor(GUI_WHITE);
    GUI_AA_DrawArc(XMid, y, r1, r1, 45, 135);
    GUI_Delay(SPEED);
    GUI_AA_DrawArc(XMid, y, r2, r2, 45, 135);
    GUI_Delay(SPEED);
    GUI_DispStringAtCEOL("", 5, 55);
    GUI_Delay(200);
    GUI_DispStringAtCEOL("using", 5, 40);
    GUI_DispStringAtCEOL("GUI_AA_DrawLine & GUI_DispCharAt", 5, 55);
    GUI_Delay(SPEED * 3);

    for (i = 45; i <= 135; i += step) {
      float co = cos(i * 3.1415926 / 180);
      float si = sin(i * 3.1415926 / 180);

      /* 画线的起始和截止点,并且标上相应的数字 */
      /* 起始坐标点x1,y1,截止点x2,y2,*/

      int   x1 = XMid - r1 * co;
      int   y1 = y    - r1 * si;
      int   x2 = XMid - (r2 - 1) * co;
      int   y2 = y    - (r2 - 1) * si;
      int   xt = XMid - rt * co;
      int   yt = y    - rt * si;
      GUI_SetColor(GUI_WHITE);
      GUI_SetPenSize(2);
      GUI_AA_DrawLine(x1, y1, x2, y2);
      GUI_SetColor(GUI_GREEN);
      GUI_SetFont(&GUI_Font8x8);
      GUI_DispCharAt('0' + c++, xt - 4, yt - 4);
      GUI_Delay(SPEED / 2);
    }
    GUI_Delay(SPEED * 3);
    GUI_ClearRect(0, 30, 320, 240);
  }
}

/*******************************************************************
*
*       MainTask
*
*       Demonstrates GUI-functions
*
********************************************************************
*/

void MainTask(void) {
  GUI_Init();
  _DrawScale();
  while(1);
}
在VC6.0模拟器上面运行的效果
QQ截图20130526212132.png

三.  如何在野火开发板上面跑这个程序
1.   在火哥的开发板里面找到这个UCGUI DEMO的横屏或竖屏的程序,

         将上面的代码复制到下面这个文件里面,覆盖掉原来的文件,就可
        以正常的运行了。
1.png


   

回复

使用道具 举报

发表于 2013-5-26 22:41:22 | 显示全部楼层
终于等来了第三期。。
回复 支持 反对

使用道具 举报

发表于 2013-5-27 09:17:20 | 显示全部楼层
速度太给力了
回复 支持 反对

使用道具 举报

发表于 2013-5-27 09:26:17 | 显示全部楼层
顶起                       
回复 支持 反对

使用道具 举报

发表于 2013-5-27 09:35:48 | 显示全部楼层
学习学习~~~~`
回复 支持 反对

使用道具 举报

发表于 2013-5-27 09:47:06 | 显示全部楼层
怎么绘图的。。看那看
回复 支持 反对

使用道具 举报

发表于 2013-5-27 09:49:51 | 显示全部楼层
挺好不错
回复 支持 反对

使用道具 举报

发表于 2013-5-28 15:12:06 | 显示全部楼层
还有几期啊?
回复 支持 反对

使用道具 举报

发表于 2013-5-28 15:17:37 | 显示全部楼层
好期待啊!
回复 支持 反对

使用道具 举报

发表于 2013-5-28 20:15:03 | 显示全部楼层
非常好奇                      
回复 支持 反对

使用道具 举报

发表于 2013-5-29 08:42:00 | 显示全部楼层
学习学习,天天向上,终于可以学系统了
回复 支持 反对

使用道具 举报

发表于 2013-5-30 12:21:45 | 显示全部楼层
ucguidemo没找到啊?最近有更新吗?我的文件里只有gui 和ucos结合的程序?
回复 支持 反对

使用道具 举报

发表于 2013-6-1 15:16:22 | 显示全部楼层
中文显示没讲
回复 支持 反对

使用道具 举报

发表于 2013-6-1 17:12:38 | 显示全部楼层
来看看了   
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-1 17:17:03 | 显示全部楼层
252514251 发表于 2013-6-1 15:16
中文显示没讲

很快就会讲
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-1 17:17:58 | 显示全部楼层
1123 发表于 2013-5-30 12:21
ucguidemo没找到啊?最近有更新吗?我的文件里只有gui 和ucos结合的程序?

野火开发板光盘里面,横屏DEMO或竖屏DEMO都可以
回复 支持 反对

使用道具 举报

发表于 2013-6-4 13:15:09 | 显示全部楼层
下来看看。
回复 支持 反对

使用道具 举报

发表于 2013-6-4 16:41:32 | 显示全部楼层
顶顶~~~~~~~~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2013-6-4 16:58:54 | 显示全部楼层
顶顶~~~~~~~~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2013-6-5 20:48:08 | 显示全部楼层
虽然不懂,先看看
回复 支持 反对

使用道具 举报

发表于 2013-6-5 20:52:31 | 显示全部楼层
火哥 UCGUI DEMO 程序那里有,是库开发系统篇里面吗?
回复 支持 反对

使用道具 举报

发表于 2013-6-16 13:12:29 | 显示全部楼层
太棒了,感谢楼主
回复 支持 反对

使用道具 举报

发表于 2013-6-25 16:01:50 | 显示全部楼层
学习太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-6-26 22:11:48 | 显示全部楼层
沙发~支持楼主太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-6-26 22:19:06 | 显示全部楼层
被雷到了~
回复 支持 反对

使用道具 举报

发表于 2013-6-27 16:49:28 | 显示全部楼层
学习学习~~~~`
回复 支持 反对

使用道具 举报

发表于 2013-6-28 16:30:24 | 显示全部楼层
邪邪邪惺惺惜惺惺
回复 支持 反对

使用道具 举报

发表于 2013-6-28 16:30:33 | 显示全部楼层
看看漂亮~
回复 支持 反对

使用道具 举报

发表于 2013-7-8 11:01:04 | 显示全部楼层
支持。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2013-7-8 11:35:27 | 显示全部楼层
先看看再说。
回复 支持 反对

使用道具 举报

发表于 2013-7-10 13:34:14 | 显示全部楼层
沙发~支持楼主沙发~支持楼主沙发~支持楼主沙发~支持楼主沙发~支持楼主沙发~支持楼主沙发~支持楼主沙发~支持楼主沙发~支持楼主沙发~支持楼主
回复 支持 反对

使用道具 举报

发表于 2013-7-11 01:09:02 | 显示全部楼层
拿分走人呵呵,楼下继续!
回复 支持 反对

使用道具 举报

发表于 2013-7-11 09:59:46 | 显示全部楼层
跟着野火学习  历程不错
回复 支持 反对

使用道具 举报

发表于 2013-7-17 13:19:49 | 显示全部楼层
看看,学习下
回复 支持 反对

使用道具 举报

发表于 2013-7-20 16:40:04 | 显示全部楼层
同问“UCGUI DEMO”在哪?是开机例程么?文件架构不一样啊。楼主还是把源码打包传上来吧
回复 支持 反对

使用道具 举报

发表于 2013-7-20 17:21:29 | 显示全部楼层
很想学习一下
回复 支持 反对

使用道具 举报

发表于 2013-7-23 22:51:15 | 显示全部楼层
太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-7-25 14:42:56 | 显示全部楼层
太棒了,非常感谢  谢谢硬汉
回复 支持 反对

使用道具 举报

发表于 2013-7-25 14:51:01 | 显示全部楼层
哈哈!太好笑了.
回复 支持 反对

使用道具 举报

发表于 2013-7-25 20:42:30 | 显示全部楼层
认真学习,搞个合订本更好
回复 支持 反对

使用道具 举报

发表于 2013-7-25 21:56:56 | 显示全部楼层
太棒了,非常感谢 正在学习中
回复 支持 反对

使用道具 举报

发表于 2013-7-25 21:57:43 | 显示全部楼层
太棒了,非常感谢 正在学习中,希望出点则样做界面的资料
回复 支持 反对

使用道具 举报

发表于 2013-7-29 17:01:02 | 显示全部楼层
太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-8-9 16:34:45 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-8-12 08:55:49 | 显示全部楼层
学习一下,谢谢分享
回复 支持 反对

使用道具 举报

发表于 2013-8-12 12:45:30 | 显示全部楼层
gggggggggggggggggggggggggggjkkkk,........
回复 支持 反对

使用道具 举报

发表于 2013-8-13 13:28:10 | 显示全部楼层
学习一下啊哈!!!
回复 支持 反对

使用道具 举报

发表于 2013-8-13 13:40:28 | 显示全部楼层
弱弱的问一句:这的代码是K60的还是STM32的呢?
望解答一下,谢谢了!
回复 支持 反对

使用道具 举报

发表于 2013-8-13 14:00:28 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-8-19 18:38:20 | 显示全部楼层
顶顶,我来学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-17 11:13 , Processed in 0.044613 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表