源代码
vecposition
主要讲的是在极坐标和笛卡尔坐标系下确定向量的位置,以及一些转化、三角函数,用来确定机器人、足球的运动坐标。
需要注意的点有atan、asin、acos,它们是反三角函数
crossProduct(VecPosition v)
求参数传入的向量与当前向量,两个向量的向量积。
getAngleBetweenPoints( const VecPosition &p1,const VecPosition &p2 )
求参数传入的两点,分别与当前点构成的俩向量之间的夹角。
getAngleWithVector(VecPosition v)
求参数传入的向量与当前向量,两个向量之间的角度。
normalize( )
求当前向量的单位向量。
rotateAboutX(double angle)
如上图,在ABP平面上,绕着A点旋转一定角度。
getMagnitude( )
是VecPosition这个类中的函数,作用是求当前VecPosition这个向量的模
inline double getDistanceTo( const VecPosition p )
返回当前对象与参数对象p之间的距离
project(VecPosition t)
返回当前向量在向量t上的投影向量
skill
主要控制机器人的手脚动作。
Marco为指令基类,派生出来诸多指令,若干个指令构成一个keyframe,代表一个人达到目标状态的过程,多个keyframe构成一个完整的skill。
执行过程分为以下几个步骤
Begin and name skill:先begin并且name一个技能
开框架
{ 设置指定角度
转化需要(各部位?)增加的角度
设置根据比例控制(scale问题)
重回正常位置
到ZMP(0力矩点)
将脚移动到预设点
设置进入下一个框架时间
PTA
reverse()函数可以倒置数组元素,在“右移元素”的题目里可以巧妙运用。
数据结构
学习了树的存储、森林与二叉树、赫夫曼树以及图的各种知识,还有动态存储、查找、排序、文件需要继续学习,争取在本周学完。