求一个在lcd上画弧线的算法。入口参数为圆心,起点,终点

信雪神话 2014-05-02 04:05:43
如题,,急求额,,,我的方法用不了。。。。
...全文
995 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
信雪神话 2015-05-04
  • 打赏
  • 举报
回复
引用 11 楼 sinat_25079531 的回复:
fi1 ...fi4是什么?
int fi1=0; int fi2=0; int fi3=0; int fi4=0; 插补算法里面的
sinat_25079531 2015-01-05
  • 打赏
  • 举报
回复
fi1 ...fi4是什么?
gotofly21 2014-11-24
  • 打赏
  • 举报
回复
ucgui上有现成的
图灵转世 2014-05-05
  • 打赏
  • 举报
回复
用三角函数画圆弧。
joy_v 2014-05-05
  • 打赏
  • 举报
回复
最简单的用sin函数画吧
信雪神话 2014-05-03
  • 打赏
  • 举报
回复
下面给出插补代码。关于原理讲解的内容在这个网址http://jpkc.nwpu.edu.cn/jpkc2005/34/dianzikejian/chapter/chap2/2-2-2.htm /************************圆弧插补算法 液晶坐标系统如下: 0------->x | | | y 调用实例如下: arc_chabu_area1(120,340,120,275,180,340); arc_chabu_area2(415,145,390,110,415,100); arc_chabu_area3(250,225,250,275,200,225); arc_chabu_area4(250,225,300,225,250,275); 注意:调用弧线的起始和终点按 ******************************************/ void arc_chabu_area1(u16 x0,u16 y0,u16 x1,u16 y1,u16 x2,u16 y2) { u16 x,y,xi,yi; u8 e; x=xi=x2; y=yi=y2; POINT_COLOR=GRAY; e=abs(x2-x1)+abs(y2-y1); while(e!=0) { if(fi1>=0) { x=xi-1; fi1=fi1+2*(x0-xi)+1; LCD_DrawLine(xi,yi,x,y,5); xi=x; e--; } else { y=yi-1; fi1=fi1+2*(y0-yi)+1; LCD_DrawLine(xi,yi,x,y,5); yi=y; e--; } } } void arc_chabu_area2(u16 x0,u16 y0,u16 x1,u16 y1,u16 x2,u16 y2) { u16 x,y,xi,yi; u8 e; x=xi=x2; y=yi=y2; e=abs(x2-x1)+abs(y2-y1); while(e!=0) { if(fi2>=0) { y=yi+1; fi2=fi2+2*(yi-y0)+1; LCD_DrawLine(xi,yi,x,y,5); yi=y; e--; } else { x=xi-1; fi2=fi2+2*(x0-xi)+1; LCD_DrawLine(xi,yi,x,y,5); xi=x; e--; } } } void arc_chabu_area3(u16 x0,u16 y0,u16 x1,u16 y1,u16 x2,u16 y2) { u16 x,y,xi,yi; u8 e; x=xi=x2; y=yi=y2; e=abs(x2-x1)+abs(y2-y1); while(e!=0) { if(fi3>=0) { x=xi+1; fi3=fi3+2*(xi-x0)+1; LCD_DrawLine(xi,yi,x,y,5); xi=x; e--; } else { y=yi+1; fi3=fi3+2*(yi-y0)+1; LCD_DrawLine(xi,yi,x,y,5); yi=y; e--; } } } void arc_chabu_area4(u16 x0,u16 y0,u16 x1,u16 y1,u16 x2,u16 y2) { u16 x,y,xi,yi; u8 e; x=xi=x2; y=yi=y2; e=abs(x2-x1)+abs(y2-y1); while(e!=0) { if(fi4>=0) { y=yi-1; fi4=fi4+2*(y0-yi)+1; LCD_DrawLine(xi,yi,x,y,5); yi=y; e--; } else { x=xi+1; fi4=fi4+2*(xi-x0)+1; LCD_DrawLine(xi,yi,x,y,5); xi=x; e--; } } }
信雪神话 2014-05-03
  • 打赏
  • 举报
回复
是啊。。。不过已经攻克了
浅语002 2014-05-03
  • 打赏
  • 举报
回复
是在lcd上画圆弧?
信雪神话 2014-05-02
  • 打赏
  • 举报
回复
急求啊啊啊啊啊啊
信雪神话 2014-05-02
  • 打赏
  • 举报
回复
为什么就是没有人帮帮我呢?????
信雪神话 2014-05-02
  • 打赏
  • 举报
回复

27,510

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧