摘要: 首先引出计算几何学中一个最基本的问题:如何判断向量在的顺时针方向还是逆时针方向?把p0定为原点,p1的坐标是(x1,y1),p2的坐标是(x2,y2)。向量的叉积(cross product)实际上就是矩阵的行列式:当叉积为正时,说明在的顺时针方向上;叉积为0说明两向量共线(同向或反向)。当同时满足:(1)和在的两侧(即一个顺时针方向上,一个在逆时针方向上)(2)和在的两侧时可肯定和相交。 图1图1是线段相交的一般情形。图2只满足第(1)条,不满足第(2)条所以不能证明和相交。 图2图3和图4是一种特殊情况,它不满足第(2)条,因为和重合,即和的叉积... 阅读全文
posted @ 2012-09-03 15:30 高性能golang 阅读(17431) 评论(2) 推荐(2) 编辑
摘要: Horner Rule是一种对多项求值的高效方法。直接计算的话,需要进行的乘法次数为:1+2+3+......+n,Horner给出的算法:需要进行的乘法次数为:N次#include<iostream>#include<deque>using namespace std;double horner(deque<double> & coe,double x,double pre=0.0){ if(coe.size()<=0) return pre; double rect=pre*x+coe.back(); coe.pop_back(); ret 阅读全文
posted @ 2012-09-03 09:13 高性能golang 阅读(2881) 评论(0) 推荐(0) 编辑