tdjsppwct 发表于 2012-4-16 08:23:03

用C语言画1/4圆弧怎么写程序?

用C语言画1/4圆弧怎么写程序?该程序要在320*240的LCD上显示出来!如下面的图片,怎么画?望高手帮忙解答下,急!

number007cool 发表于 2012-4-16 08:35:02

网上关于彩屏例程的都有画圆的子程序,限定一下x、y的范围就可以了

first_blood 发表于 2012-4-16 08:48:21

请参考rtgui dc绘图 dc.c
void rtgui_dc_draw_arc(struct rtgui_dc *dc, rt_int16_t x, rt_int16_t y, rt_int16_t r, rt_int16_t start, rt_int16_t end)

xukai871105 发表于 2012-4-16 09:43:58

这个吗,我觉得学机械的,学过数控技术的估计一下子就反应过了!


可以使用逐点比较法,或者DDA积分法(建议使用逐点比较法),这两种方法既可以画圆弧,也可以画直线。

可以分为四步,偏差函数构造,各方向插补,终点判别




看个例子自己动手算一下就知道了


楼主自己百度,google一下,定会有结果的!

tdjsppwct 发表于 2012-4-17 13:32:43

first_blood 发表于 2012-4-16 08:48 static/image/common/back.gif
请参考rtgui dc绘图 dc.c
void rtgui_dc_draw_arc(struct rtgui_dc *dc, rt_int16_t x, rt_int16_t y, rt_i ...

你说的这个函数在哪里可以找到?

tdjsppwct 发表于 2012-4-17 13:34:32

本帖最后由 tdjsppwct 于 2012-4-17 14:41 编辑

xukai871105 发表于 2012-4-16 09:43 static/image/common/back.gif
这个吗,我觉得学机械的,学过数控技术的估计一下子就反应过了!




谢谢,我搜索看看

tdjsppwct 发表于 2012-4-17 14:45:09

追加问题,怎样修改程序使在LCD屏幕上显示的西文字体放大?我的原程序如下:
/*----------------------------------------------
功能:输入ASCII值函数
参数:
   @x--为屏幕上水平位置,以字节为单位
   @y--为屏幕上垂直位置,以字节行为单位
   @pstr--ASCII字符代码数组名,写入文本区
----------------------------------------------*/
void Print_ASCII(U32 x,U32 y,unsigned char *pstr)
{
   unsigned int addr,addr_L,addr_H;
   
   addr = x+y*40;               // ASCII字符写入文本区,文本区起始地址为:0x0000
   addr_L = addr&0xff;
   addr_H = addr>>8;
   
   LCD_Cursorxy(addr_L,addr_H);
   LCD_CMDWrite(0x4c);
   LCD_CMDWrite(0x42);
   while(*pstr>0){
   LCD_DATAWrite(*pstr++);
   }
}
这个程序下显示的大小为:8*8;现在想显示到:8*16这么大,怎么修改?急

tdjsppwct 发表于 2012-4-19 16:50:55

各位这个画图我已经解决,用的最笨的方法,自己用画图板画的,只是不精确,外观看起来没有多大差别。
具体才操作方法是在world温度里面画两个圆,然后用截的方式放到画图板在通过慢慢的描点画出来的
页: [1]
查看完整版本: 用C语言画1/4圆弧怎么写程序?