智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 10986|回复: 25
打印 上一主题 下一主题

[资源] 曲率计算

  [复制链接]

22

主题

242

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2785

优秀会员奖章

威望
534
贡献
1925
兑换币
20
注册时间
2009-10-12
在线时间
163 小时
跳转到指定楼层
1#
发表于 2010-5-15 16:57:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
下面是第三届东北大学三点法算曲率的代码


研究了一下,基本看不懂,只知道他是求的三角形外接圆半径作为曲率半径,大部分代码都是做处理的,确保取得点是正确的,里面有一点我的注释,不知正确与否(原文无一点注释),那位强人能帮忙讲下不???大家一起研究下




  1. //东北大学猎豹队
  2. /*
  3. void CountCurvature(uchar i1,uchar i2) // i1起始行,i2结束行
  4. {
  5. uchar mid; //临时值,辅助作用
  6. int dx1,dx2,dx3,dy1,dy2,dy3; //三点坐标,用起始行和结束行表示的???

  7. //应该是确保三点是稳定的点的

  8. if(i1>i2)
  9. { //i1>i2,则交换
  10. mid=i1;
  11. i1=i2;
  12. i2=mid;
  13. }
  14. //如果取得行数超过7行,则取中间行作为另一个点的位置
  15. if(i1+6<=i2)
  16. {
  17. mid=(uchar)((i1+i2)/2); //取始末点行数的一半为之间点的行数,为uchar型的


  18. dx1=(mid-i1)*3; //
  19. dx2=(i2-i1-1)*3;
  20. dx3=(i2-mid-1)*3;
  21. dy1=(BlackDrift[mid]+BlackDrift[mid+1]-BlackDrift[i1]-BlackDrift[i1+1])/2; //BlackDrift 黑线趋势
  22. dy2=(BlackDrift[i2]+BlackDrift[i2-1]-BlackDrift[i1]-BlackDrift[i1+1])/2;
  23. dy3=(BlackDrift[i2]+BlackDrift[i2-1]-BlackDrift[mid]-BlackDrift[mid+1])/2;


  24. PreCurvatureNum=dx1*dy2-dx2*dy1;
  25. dy1/=2;
  26. dy2/=2;
  27. dy3/=2;

  28. //Curvature 曲率

  29. PreCurvatureDen=(long)m_sqrt(dx1*dx1+dy1*dy1)*m_sqrt(dx2*dx2+dy2*dy2)*m_sqrt(dx3*dx3+dy3*dy3);
  30. if(PreCurvatureNum==0)
  31. Curvature=0;
  32. else
  33. {
  34. if(PreCurvatureDen>10000)
  35. {
  36. PreCurvatureNum=PreCurvatureNum*90/(PreCurvatureDen/100);
  37. Curvature=(int)PreCurvatureNum;
  38. }
  39. else
  40. {
  41. PreCurvatureNum=PreCurvatureNum*9000/PreCurvatureDen;
  42. Curvature=(int)PreCurvatureNum;
  43. }
  44. }
  45. if(Curvature<-99)
  46. Curvature=-99;
  47. else if(Curvature>99)
  48. Curvature=99;
  49. CurvatureCache[3]=CurvatureCache[2];
  50. CurvatureCache[2]=CurvatureCache[1];
  51. CurvatureCache[1]=CurvatureCache[0];
  52. if(i2-i1<=6)
  53. CurvatureCache[0]=(Curvature*5+CurvatureCache[1]*5)/10;
  54. else if(i2-i1<=10)
  55. CurvatureCache[0]=(Curvature*6+CurvatureCache[1]*4)/10;
  56. else if(i2-i1<=14)
  57. CurvatureCache[0]=(Curvature*7+CurvatureCache[1]*3)/10;
  58. else if(i2-i1<=18)
  59. CurvatureCache[0]=(Curvature*8+CurvatureCache[1]*2)/10;
  60. else
  61. CurvatureCache[0]=Curvature;
  62. if(CurvatureCache[0]>99)
  63. CurvatureCache[0]=99;
  64. else if(CurvatureCache[0]<-99)
  65. CurvatureCache[0]=-99;
  66. }
  67. DiffCurvature=(2*CurvatureCache[0]-CurvatureCache[1]-CurvatureCache[2])/3;
  68. }

复制代码

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
119
威望
74
贡献
19
兑换币
36
注册时间
2012-12-5
在线时间
13 小时
毕业学校
hefei shifanxuany
26#
发表于 2013-1-21 11:56:57 | 只看该作者
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
回复 支持 反对

使用道具 举报

4

主题

284

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2718
威望
1357
贡献
675
兑换币
665
注册时间
2012-6-18
在线时间
343 小时
25#
发表于 2012-12-13 20:09:13 | 只看该作者
没看懂+1
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
27
威望
21
贡献
6
兑换币
0
注册时间
2012-10-17
在线时间
2 小时
24#
发表于 2012-11-20 13:42:51 | 只看该作者
没看懂!:L:L
回复 支持 反对

使用道具 举报

5

主题

560

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3867

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

威望
2373
贡献
182
兑换币
711
注册时间
2012-4-15
在线时间
656 小时
23#
发表于 2012-5-14 10:35:17 | 只看该作者
回复 支持 反对

使用道具 举报

1

主题

67

帖子

0

精华

高级会员

Rank: 4

积分
746
威望
462
贡献
154
兑换币
8
注册时间
2012-2-12
在线时间
65 小时
毕业学校
西北师范大学
22#
发表于 2012-5-7 17:20:43 | 只看该作者
回复 支持 反对

使用道具 举报

7

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
575
威望
354
贡献
129
兑换币
16
注册时间
2012-3-29
在线时间
46 小时
毕业学校
青岛农业大学
21#
发表于 2012-4-18 11:00:32 | 只看该作者
DING
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
威望
331
贡献
68
兑换币
0
注册时间
2010-12-7
在线时间
10 小时
20#
发表于 2012-4-3 16:44:41 | 只看该作者
谢谢了
回复 支持 反对

使用道具 举报

5

主题

96

帖子

0

精华

高级会员

Rank: 4

积分
866
威望
534
贡献
172
兑换币
6
注册时间
2012-2-23
在线时间
80 小时
毕业学校
东北师范大学
19#
发表于 2012-3-6 10:34:24 | 只看该作者
好啊很妙
回复 支持 反对

使用道具 举报

45

主题

897

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4570

热心会员奖章推广达人奖章优秀会员奖章活跃会员奖章

QQ
威望
2734
贡献
1368
兑换币
803
注册时间
2011-11-30
在线时间
234 小时
18#
发表于 2012-3-5 09:51:05 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-20 12:34 , Processed in 0.070194 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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