OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 18885|回复: 33

uc/gui学习笔记,不是网上复制的,绝对是自己整理(不断更新)

[复制链接]

117

主题

598

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
1702
金钱
1702
注册时间
2012-5-10
在线时间
439 小时
发表于 2012-6-22 15:20:27 | 显示全部楼层 |阅读模式
2-D图形库,
这个有些复杂,花了半天时间整理完毕
不容易理解的函数,都有举例
有问题大家交流

2-D图形库.txt

4.33 KB, 下载次数: 2330

如有技术问题,微信扫头像交流,STM32,JAVA,服务器
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-6-22 16:09:51 | 显示全部楼层
    GUI_ClearRect(0,0,100,100);//画矩形函数,以背景色填充
    GUI_FillRect(100,100,150,150);//画矩形函数,以前景色填充
    GUI_DrawPixel(20,20);//画一个点。以前景色填充
                         是所有画图的基础

     GUI_DrawPoint(20,20);//以当前的笔大小画点,也就是要配合PenSize使用
                         GUI_SetPenSize(10);        //设置画线的粗细 
                         GUI_DrawPoint(20,20);
                         配合使用就是以20,20为圆心,(10-1)/2为半径画圆,且填充
    GUI_InvertRect(30,0,60,20);与GUI_FillRect(100,100,150,150);没看出什么不同的地方
 
绘制位图
    GUI_DrawBitmap();
          例  extern const GUI_BITMAP  bmaaa;
              void main()
               {
                   GUI_DrawBitmap(&bmaaa,x,y);
                }
            x,y是要显示图片的起始坐标
            GUI_BITMAP是GUI的一个结构体名
            bmaaa是用GUI的位图转换器生成.c或.h文件里面指向图像数组的结构体名
            如下面的bmIMG在程序中代替bmaaa可在x,y显示一副BMP图片
                 GUI_CONST_STORAGE GUI_BITMAP bmIMG = {
                     48, /* XSize */
                     48, /* YSize */
                     48, /* BytesPerLine */
                      8, /* BitsPerPixel */
                     acIMG,  /* ointer to picture data (indices) */
                     &PalIMG  /* ointer to palette */
                     };
    GUI_DrawBitmapMag(&bmIMG,x,y,xmul,ymul);可以把图片放大
                        暂时没发现可以缩小,xmul ymul写小于1的数就没显示了
画线
     GUI_DrawHline(y,x0,x1);画水平线的函数
                        就是画水平线比Drawline快点,,,特定情况很有用
      GUI_DrawVline(y,x0,x1);画垂直线的函数


     GUI_DrawLine(x0,y0,x1,y1);画线
     
     GUI_DrawLineRel(dx,dy);从当前坐标x,y画一条线到x+dx,y+dy坐标的线
     GUI_DrawLineTo(x1,y1);从当前坐标x,y画一条线到x1,y1坐标的线
     GUI_DrawPolyLine(const GUI_POINT* pPoint,int NumPoints,int x,int y)
                     pPoint   指向所显示的折线的指针
                     NumPoints点系列中指定点的数量
                     x,y        原点的坐标
绘多边形

    GUI_DrawPolygon(apoint,countof(apoint),x,y);
                     #define countof(Array)  (sizeof(Array)/sizeof(Array[0]))
                     const GUI_POINT apoint[]=
                        {
                     {0,0},{50,0},{80,60},{40,90},{20,20}
                        };

                         画多边形的轮廓,x,y为起点坐标
                         countof(apoint)是定义的宏,计算apoint[]中有多少点,也可以自己指定                                 数字,如果指定的数字n小于点的个数,会舍弃n后面的点
                                 如果大于则会产生固定的点坐标
                         apiont是点的数组指针
    GUI_FillPolygon(apoint,countof(apoint),0,0);
                   用法同上,只是会以前景色填充
    GUI_EnlargePolygon(aEnlargedPoints,apoint,countof(apoint),20);
                   将一个多边形点的数组放大,把放大后的数组放到新数组里面,注意这个函数不                      显示图形,
                  首先要定义变量GUI_POINT aEnlargedPoints[countof(apoint)];当作目标数组
                  调用GUI_EnlargePolygon()函数把原数组apoint[]放大保存到aEnlargedPoints                  []
                 最后调用显示函数GUI_DrawPolygon(aEnlargedPoints,countof(apoint),100,100);
                 20表示对多边形的所有边扩大20像素,是加上20,如果是1,也是有变化的
   GUI_MagnifyPolygon(aEnlargedPoints,apoint,countof(apoint),mag);
                 其实也是放大,只是从不同的角度上变化
                 mag是把图形放大mag倍
                 如果mag是1则没变化,和 GUI_EnlargePolygon是有区别的
  GUI_RotatePolygon(aEnlargedPoints,apoint,countof(apoint),10); 
                旋转图形,以弧度为单位,注意也是只旋转不显示的,要配合GUI_FillPolygon或者
                GUI_DrawPolygon使用
                2π约等于6.28,=360度,所以注意数值不是很大

画圆
   
    GUI_DrawCircle(x0,y0,r);圆心,半径画圆180>=r>=0,r=0.则画点
    GUI_FillCircle(x0,y0,r);圆心,半径画圆,填充,180>=r>=0,r=0.则画点
画椭圆
    GUI_DrawEllipse(x0,y0,rx,ry);x ,y圆心坐标,rx是x轴半径 ,ry是y轴半径
    GUI_FillEllipse(x0,y0,rx,ry);x ,y圆心坐标,rx是x轴半径 ,ry是y轴半径,填充
画圆弧
    GUI_DrawArc(x,y,rx,ry,a0,a1);x ,y圆心坐标,rx是x轴半径 ,ry是y轴半径
                                     a0起始角度,a1终止角度
                                     角度是以与x轴正方向的夹角


















我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

117

主题

598

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
1702
金钱
1702
注册时间
2012-5-10
在线时间
439 小时
 楼主| 发表于 2012-6-22 20:51:26 | 显示全部楼层
为什么贴出来呢
如有技术问题,微信扫头像交流,STM32,JAVA,服务器
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-6-23 09:50:45 | 显示全部楼层
方便阅读
回复 支持 反对

使用道具 举报

18

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
286
金钱
286
注册时间
2012-9-13
在线时间
33 小时
发表于 2012-12-31 12:03:40 | 显示全部楼层
谢谢分享... gui的手册讲的太模糊了..  
回复 支持 反对

使用道具 举报

5

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2012-12-3
在线时间
11 小时
发表于 2012-12-31 12:48:45 | 显示全部楼层
Thanks!
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-6-25
在线时间
0 小时
发表于 2013-7-23 14:42:19 | 显示全部楼层
不错,比手册上面易懂
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2013-7-7
在线时间
0 小时
发表于 2013-7-23 15:20:35 | 显示全部楼层
顶贴是种习惯,也是种美德。
A:程序写好了么? B:你猜? A:你猜我猜不猜? A:……
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
发表于 2013-7-23 15:46:07 | 显示全部楼层
凹槽,怎么这么多人用原子哥的头像的呢?搞到我差点认错人!!!     不过还是谢谢LZ的整理,方便了好多学校STM32的人。。。。    赞一个!!
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2013-6-18
在线时间
0 小时
发表于 2013-7-23 15:48:12 | 显示全部楼层
其实就是原子哥的例程都有的。。。   哈哈。。
只求每天都能把小事做好。
回复 支持 反对

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-9-16
在线时间
8 小时
发表于 2013-9-20 17:03:57 | 显示全部楼层
对着GUI手册练习 感觉还是挺爽的,虽然模糊但是动手解决问题能学更多东西
回复 支持 反对

使用道具 举报

7

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2013-8-24
在线时间
16 小时
发表于 2013-9-21 21:52:54 | 显示全部楼层
学习了,谢谢分享
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-10-24
在线时间
0 小时
发表于 2013-12-4 22:30:14 | 显示全部楼层
顶一个 谢谢楼主
回复 支持 反对

使用道具 举报

7

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2013-1-3
在线时间
89 小时
发表于 2013-12-28 11:53:03 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
请教原子哥,上面2D图形库里面的函数源码都是在哪里?
回复 支持 反对

使用道具 举报

14

主题

338

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2013-6-15
在线时间
15 小时
发表于 2013-12-28 12:00:31 | 显示全部楼层
回复 支持 反对

使用道具 举报

7

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2013-1-3
在线时间
89 小时
发表于 2013-12-28 12:47:55 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,上面函数有提到有关画扇形或者扇环的函数源码是在哪里呀?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-28 19:01:23 | 显示全部楼层
回复【16楼】zhuwenfly:
---------------------------------
折哦我也没有。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

57

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2013-2-20
在线时间
1 小时
发表于 2013-12-29 22:26:21 | 显示全部楼层
尼玛,全部是原子的图像,不仔细看还真不知道,还以为原子在玩GUI.....呵呵
创新超越梦想,拼搏创造奇迹....
回复 支持 反对

使用道具 举报

24

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2014-5-19
在线时间
28 小时
发表于 2014-5-25 11:12:09 | 显示全部楼层
嗯,学习了,正在看这一部分
回复 支持 反对

使用道具 举报

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-7-17
在线时间
0 小时
发表于 2014-7-17 14:00:24 | 显示全部楼层
GUI_RotatePolygon目标多边形的指针具体是什么,能不能给个应用案例,跪求。。。。。
一份阳光,二分真诚,三分洒脱,组最好的自己
回复 支持 反对

使用道具 举报

16

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2013-11-23
在线时间
6 小时
发表于 2014-11-9 22:48:31 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥,GUI_FillPolygon原点坐标是啥意思?定义的多边形点数组有什么排序要求吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-11 22:09:16 | 显示全部楼层
回复【21楼】DoneMur:
---------------------------------
我不用ucGUI的。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2015-3-11
在线时间
8 小时
发表于 2015-8-7 09:51:54 | 显示全部楼层
超帅的,刚刚好想学这部分,。。。
回复 支持 反对

使用道具 举报

13

主题

206

帖子

1

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2014-10-26
在线时间
32 小时
发表于 2015-8-7 17:21:27 | 显示全部楼层
回复【22楼】正点原子:
---------------------------------
那个综合实验用什么 界面工具做出来的? STemwin?
学习!
回复 支持 反对

使用道具 举报

头像被屏蔽

65

主题

277

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2013-8-11
在线时间
29 小时
发表于 2015-8-8 15:09:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

16

主题

173

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2441
金钱
2441
注册时间
2014-11-5
在线时间
348 小时
发表于 2015-9-12 10:53:05 | 显示全部楼层
回复【24楼】q27488:
---------------------------------
好像那是原子团队自己写的gui
回复 支持 反对

使用道具 举报

54

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2015-7-10
在线时间
17 小时
发表于 2015-10-11 11:44:46 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,现在有图片缩小的吗
回复 支持 反对

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2015-6-21
在线时间
2 小时
发表于 2015-10-11 20:05:50 | 显示全部楼层
感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享 感谢分享
回复 支持 反对

使用道具 举报

2

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
149
金钱
149
注册时间
2013-9-14
在线时间
36 小时
发表于 2015-11-3 10:32:19 | 显示全部楼层
你好。我有些GUI函数用不了。例如这个 GUI_FillCircle(100, 50, 49); 
但GUI_SetColor(GUI_MAGENTA);
GUI_SetFont(&GUI_Font24B_ASCII);
GUI_SetTextMode(GUI_TM_TRANS);
GUI_DispStringHCenterAt("Alphablending", 100, 3);
这些我又可以用。然后我用GUIbuild建立的简单图形界面 生成代码 直接调用 也是显示不出来。请问你知道原因吗
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-11-21
在线时间
1 小时
发表于 2016-12-5 14:18:48 | 显示全部楼层
其实......内容不多,可以直接贴上来滴~~~
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-11-21
在线时间
1 小时
发表于 2016-12-5 14:20:00 | 显示全部楼层
我在研究位图旋转或者平移这些 图形变换算法,但看了一圈 ucgui 的 API貌似没这个功能。
难道真的要去倒腾 opengl?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-11-21
在线时间
1 小时
发表于 2016-12-5 14:20:28 | 显示全部楼层
我爱STM_32 发表于 2013-7-23 15:46
凹槽,怎么这么多人用原子哥的头像的呢?搞到我差点认错人!!!     不过还是谢 ...

不是的,只是我没设置头像,所以就成了论坛头像|。。。。。。。
回复 支持 反对

使用道具 举报

3

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-7-29
在线时间
18 小时
发表于 2017-8-22 19:15:55 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

10

主题

232

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2288
金钱
2288
注册时间
2012-8-24
在线时间
247 小时
发表于 2017-8-22 20:48:48 | 显示全部楼层
看GUI手册练习,然后认真练习
单片机技术交流请加127034610
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 19:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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