文件名称:夹角计算-python读取mat文件并转为csv文件的实例
文件大小:9.75MB
文件格式:PDF
更新时间:2024-06-29 17:47:53
算法
图6.23 夹角计算 首先,我们需要考虑边与边的夹角的计算,设函数 0 1 COMPUTE_ANGLE(e , )e 实现的功能 就是计算夹角 0 1 ( , )e e ,采用等式 0 1 0 1asin e / e ee 计算出介于[ / 2, / 2] 的角度值, 如图6.23所示,如果边 0 1 ,e e 同向,如图(a)(c)所示,则夹角为 ;如果不同向且 0 , 如图(b)所示,则夹角为 ;否则,如图(d)所示,则夹角为 ( ) 。算法的伪码如 下所示: 0 1 COMPUTE_ANGLE(e , )e 1. 0 1 0 1asin e / e ee 2. if 0 1 e 0e , then 3. return ; 4. else if 0 , then 5. return ; 6. else 7. return ( ) ; 8. end if; 可以用一个双向循环链表,来存储极角坐标,此外还需要存储一个计数器,用于记录扇 区的重数,即双向循环链表中存储的节点的数据结构为{ , }angle count ,其中 angle表示极角坐 标,极角坐标的取值范围是 [0,2 ) ,count 表示扇区重数。因为我们只需要找到重数为1的扇 区,重数等于2或大于2的区域,可以统一标识为2,所以 count 的取值范围是{0,1,2}。令极角 坐标 0 0C ,并不会影响到算法的结果。 算法的基本过程如下所示: 1. 初始情况下,扇区 [0, 2 ) 的重数为0,双向循环链表为空,令 0 0C ,表示当前的极 角坐标为0;