完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32程序里带的画圆都是一半正画一半反画过来的
LCD_DrawPoint(x0+b,y0+a); //4 LCD_DrawPoint(x0+a,y0+b); //6 这样子的: 那如何把4改过来也按照6的方向画呢??? 代码怎么改呢??? //在指定位置画一个指定大小的圆 //(x,y):中心点 //r :半径 void LCD_Draw_Circle(u16 x0,u16 y0,u8 r) { int a,b; int di; a=0;b=r; di=3-(r<<1); //判断下个点位置的标志 while(a<=b) { LCD_DrawPoint(x0+b,y0+a); //4 LCD_DrawPoint(x0+a,y0+b); //6 a++; //使用Bresenham算法画圆 if(di<0)di +=4*a+6; else { di+=10+4*(a-b); b--; } } } 求高手帮助~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
相关推荐
4个回答
|
|
没仔细想,感觉道理都一样。。。
|
|
|
|
|
|
|
|
为啥要反过来画呢,
|
|
|
|
这个没考虑过,只是例程拿来就用,是想做慢慢显示一个圆的绘制过程是吧,
那就要看懂LCD_DrawPoint()这个函数了,看画法,这个应该函数应该是借用了45度三角形的方法来简化计算,想改的话,就得读懂这个函数,说不定要自己重新编写一个了 |
|
|
|
只有小组成员才能发言,加入小组>>
3280 浏览 9 评论
2958 浏览 16 评论
3460 浏览 1 评论
9004 浏览 16 评论
4052 浏览 18 评论
1115浏览 3评论
573浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
571浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2303浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1859浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 15:20 , Processed in 1.130428 second(s), Total 87, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号