OpenEdv-开源电子网

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

GUI_FillEllipse(400, 250, 400, 200);生成的图形不对

[复制链接]

29

主题

244

帖子

0

精华

高级会员

Rank: 4

积分
944
金钱
944
注册时间
2014-10-9
在线时间
93 小时
发表于 2014-10-15 08:54:51 | 显示全部楼层 |阅读模式
5金钱


GUI_FillEllipse(400, 250, 400, 200);生成的图形不对,生成的图片成这样了,我想要的是一个正规的椭圆,这是为什么呀

最佳答案

查看完整内容[请看2#楼]

[mw_shl_code=c,true]//画任意线 //x0,y0:起点 x1,y1:终点 //color:颜色 void gui_draw_line(u16 x0,u16 y0,u16 x1,u16 y1,u16 color) { u16 t; int xerr=0,yerr=0,delta_x,delta_y,distance; int incx,incy,uRow,uCol; delta_x=x1-x0; //计算坐标增量 delta_y=y1-y0; uRow=x0; uCol=y0; if(delta_x>0)incx=1; //设置单步方向 else if(delta_x==0)incx=0;//垂直线 else {incx=-1;delta_x=- ...
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-10-15 08:54:52 | 显示全部楼层
[mw_shl_code=c,true]//画任意线 //x0,y0:起点 x1,y1:终点 //color:颜色 void gui_draw_line(u16 x0,u16 y0,u16 x1,u16 y1,u16 color) { u16 t; int xerr=0,yerr=0,delta_x,delta_y,distance; int incx,incy,uRow,uCol; delta_x=x1-x0; //计算坐标增量 delta_y=y1-y0; uRow=x0; uCol=y0; if(delta_x>0)incx=1; //设置单步方向 else if(delta_x==0)incx=0;//垂直线 else {incx=-1;delta_x=-delta_x;} if(delta_y>0)incy=1; else if(delta_y==0)incy=0;//水平线 else{incy=-1;delta_y=-delta_y;} if( delta_x>delta_y)distance=delta_x; //选取基本增量坐标轴 else distance=delta_y; for(t=0;t<=distance+1;t++ )//画线输出 { gui_phy.draw_point(uRow,uCol,color);//画点 xerr+=delta_x ; yerr+=delta_y ; if(xerr>distance) { xerr-=distance; uRow+=incx; } if(yerr>distance) { yerr-=distance; uCol+=incy; } } } //画椭圆 //x0,y0:坐标 //rx:x方向半径 //ry:y方向半径 //color:椭圆的颜色 void gui_draw_ellipse(u16 x0, u16 y0, u16 rx, u16 ry,u16 color) { u32 OutConst, Sum, SumY; u16 x,y; u16 xOld; u32 _rx = rx; u32 _ry = ry; if(rx>x0||ry>y0)return;//非法. OutConst = _rx*_rx*_ry*_ry+(_rx*_rx*_ry>>1); // Constant as explaint above // To compensate for rounding xOld = x = rx; for (y=0; y<=ry; y++) { if (y==ry)x=0; else { SumY =((u32)(rx*rx))*((u32)(y*y)); // Does not change in loop while(Sum = SumY + ((u32)(ry*ry))*((u32)(x*x)),(x>0) && (Sum>OutConst)) x--; } // Since we draw lines, we can not draw on the first iteration if (y) { gui_draw_line(x0-xOld,y0-y+1,x0-x,y0-y,color); gui_draw_line(x0-xOld,y0+y-1,x0-x,y0+y,color); gui_draw_line(x0+xOld,y0-y+1,x0+x,y0-y,color); gui_draw_line(x0+xOld,y0+y-1,x0+x,y0+y,color); } xOld = x; } }[/mw_shl_code]

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-10-15 23:35:28 | 显示全部楼层
超过屏幕区域了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

29

主题

244

帖子

0

精华

高级会员

Rank: 4

积分
944
金钱
944
注册时间
2014-10-9
在线时间
93 小时
 楼主| 发表于 2014-10-16 09:26:35 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
屏幕是800*480的,应该没超过吧
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

29

主题

244

帖子

0

精华

高级会员

Rank: 4

积分
944
金钱
944
注册时间
2014-10-9
在线时间
93 小时
 楼主| 发表于 2014-10-16 09:26:55 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
除了超过屏幕区域,还有其他原因吗
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-10-16 23:24:35 | 显示全部楼层
回复【4楼】yuanxinfei:
---------------------------------
其他不好说,不过我倒是可以提供你一个画椭圆的函数。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

29

主题

244

帖子

0

精华

高级会员

Rank: 4

积分
944
金钱
944
注册时间
2014-10-9
在线时间
93 小时
 楼主| 发表于 2014-10-17 08:23:25 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
什么函数?
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

29

主题

244

帖子

0

精华

高级会员

Rank: 4

积分
944
金钱
944
注册时间
2014-10-9
在线时间
93 小时
 楼主| 发表于 2014-10-17 16:48:37 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
谢谢,这个非常好,感觉比库里的用起来灵活
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 04:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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