OpenEdv-开源电子网

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

圆弧插补算法,请问fi4是什么。如果我想画正旋波,用这个函数圆形如何确定呢

[复制链接]

85

主题

169

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
413
金钱
413
注册时间
2015-2-1
在线时间
1 小时
发表于 2015-10-7 14:53:52 | 显示全部楼层 |阅读模式
5金钱
圆弧插补算法
液晶坐标系统如下:
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);

注意:调用弧线的起始和终点按逆时针方向;
参数说明:
x0,y0 圆心坐标
x1,y1 起点坐标
x2,y2 终点坐标
LCD_DrawLine(xi,yi,x,y,5);中的数字5为线宽设置。

******************************************/
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--;
}
}       
圆弧插补算法,请问fi4是什么。如果我想画正旋波,用这个函数圆形如何确定呢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-10-8 23:32:45 | 显示全部楼层
回复

使用道具 举报

1

主题

17

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2015-1-6
在线时间
2 小时
发表于 2015-10-9 12:17:16 | 显示全部楼层
关注!学习!
回复

使用道具 举报

8

主题

82

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2017-11-4
在线时间
88 小时
发表于 2018-3-8 15:50:01 | 显示全部楼层
楼主大哥,问题解决了吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-20 11:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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