智能车制作
标题:
曲率计算
[打印本页]
作者:
仁者
时间:
2010-5-15 16:57
标题:
曲率计算
下面是第三届东北大学三点法算曲率的代码
研究了一下,基本看不懂,只知道他是求的三角形外接圆半径作为曲率半径,大部分代码都是做处理的,确保取得点是正确的,里面有一点我的注释,不知正确与否(原文无一点注释),那位强人能帮忙讲下不???大家一起研究下
//东北大学猎豹队
/*
void CountCurvature(uchar i1,uchar i2) // i1起始行,i2结束行
{
uchar mid; //临时值,辅助作用
int dx1,dx2,dx3,dy1,dy2,dy3; //三点坐标,用起始行和结束行表示的???
//应该是确保三点是稳定的点的
if(i1>i2)
{ //i1>i2,则交换
mid=i1;
i1=i2;
i2=mid;
}
//如果取得行数超过7行,则取中间行作为另一个点的位置
if(i1+6<=i2)
{
mid=(uchar)((i1+i2)/2); //取始末点行数的一半为之间点的行数,为uchar型的
dx1=(mid-i1)*3; //
dx2=(i2-i1-1)*3;
dx3=(i2-mid-1)*3;
dy1=(BlackDrift[mid]+BlackDrift[mid+1]-BlackDrift[i1]-BlackDrift[i1+1])/2; //BlackDrift 黑线趋势
dy2=(BlackDrift[i2]+BlackDrift[i2-1]-BlackDrift[i1]-BlackDrift[i1+1])/2;
dy3=(BlackDrift[i2]+BlackDrift[i2-1]-BlackDrift[mid]-BlackDrift[mid+1])/2;
PreCurvatureNum=dx1*dy2-dx2*dy1;
dy1/=2;
dy2/=2;
dy3/=2;
//Curvature 曲率
PreCurvatureDen=(long)m_sqrt(dx1*dx1+dy1*dy1)*m_sqrt(dx2*dx2+dy2*dy2)*m_sqrt(dx3*dx3+dy3*dy3);
if(PreCurvatureNum==0)
Curvature=0;
else
{
if(PreCurvatureDen>10000)
{
PreCurvatureNum=PreCurvatureNum*90/(PreCurvatureDen/100);
Curvature=(int)PreCurvatureNum;
}
else
{
PreCurvatureNum=PreCurvatureNum*9000/PreCurvatureDen;
Curvature=(int)PreCurvatureNum;
}
}
if(Curvature<-99)
Curvature=-99;
else if(Curvature>99)
Curvature=99;
CurvatureCache[3]=CurvatureCache[2];
CurvatureCache[2]=CurvatureCache[1];
CurvatureCache[1]=CurvatureCache[0];
if(i2-i1<=6)
CurvatureCache[0]=(Curvature*5+CurvatureCache[1]*5)/10;
else if(i2-i1<=10)
CurvatureCache[0]=(Curvature*6+CurvatureCache[1]*4)/10;
else if(i2-i1<=14)
CurvatureCache[0]=(Curvature*7+CurvatureCache[1]*3)/10;
else if(i2-i1<=18)
CurvatureCache[0]=(Curvature*8+CurvatureCache[1]*2)/10;
else
CurvatureCache[0]=Curvature;
if(CurvatureCache[0]>99)
CurvatureCache[0]=99;
else if(CurvatureCache[0]<-99)
CurvatureCache[0]=-99;
}
DiffCurvature=(2*CurvatureCache[0]-CurvatureCache[1]-CurvatureCache[2])/3;
}
复制代码
作者:
阿贵
时间:
2010-5-31 14:32
呵呵!
作者:
ljl0731
时间:
2010-6-2 19:49
值得研究一下
作者:
ljl0731
时间:
2010-6-2 19:49
值得研究一下
作者:
zhangluhuixing
时间:
2010-6-3 11:19
很有用
作者:
jiang1101
时间:
2010-7-12 19:31
关注
作者:
hwqdg
时间:
2010-8-1 08:54
我已经在另一个帖子中进行了解释。
http://www.znczz.com/thread-13925-1-1.html
作者:
仁者
时间:
2010-8-3 21:39
回复
7#
hwqdg
谢了
作者:
harry1874
时间:
2010-10-24 18:28
ding
作者:
vernonji
时间:
2010-11-3 10:39
谢谢楼主
作者:
林显达
时间:
2010-11-18 13:05
呵呵
作者:
Mousekeys
时间:
2011-4-3 19:28
值得研究
作者:
lslk89
时间:
2011-4-4 11:48
学习学习
作者:
m254366401
时间:
2011-4-17 15:59
顶
作者:
white1sky
时间:
2011-4-25 18:32
谢谢楼主的分享,值得研究一下~
作者:
zdbkaka
时间:
2011-10-29 20:30
学习中
作者:
157688
时间:
2012-2-25 17:43
作者:
dongyunlong
时间:
2012-3-5 09:51
帅
作者:
745424772
时间:
2012-3-6 10:34
好啊很妙
作者:
twking
时间:
2012-4-3 16:44
谢谢了
作者:
knight9874@163.
时间:
2012-4-18 11:00
DING
作者:
baobao
时间:
2012-5-7 17:20
作者:
封号式寂寞
时间:
2012-5-14 10:35
作者:
yiqianlingyi
时间:
2012-11-20 13:42
没看懂!
:L:L
作者:
fn654
时间:
2012-12-13 20:09
没看懂+1
作者:
咪Luna~
时间:
2013-1-21 11:56
hwqdg 发表于 2010-8-1 08:54
我已经在另一个帖子中进行了解释。
http://www.znczz.com/thread-13925-1-1.html
你在这个帖子的解释
http://www.znczz.com/forum.php?mod=viewthread&tid=10031
可不可以重新写下发给我!!谢谢!!!邮箱
383290648@qq.com
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2