可能重复:
如何检测两个线段相交的位置?
确定两个线段是否相交?
给定两条线l1 =((A0,B0),(A1,B1))和l2 =((A2,B2),(A3,B3)); Ax,Bx是整数,(Ax,Bx)指定行的开始和结束.
是否存在仅使用整数运算来确定l1和l2是否相交的算法?(只需要一个布尔答案.)
我自己的方法是用定点算术计算交点附近的点.然后用以下等式代替解(a,b):
I:abs((A0 + a*(A1-A0)) - (A2 + b*(A3-A2)))<公差
II:abs((B0 + a*(B1-B0)) - (B2 + b*(B3-B2)))<公差
如果I和II都评估为true,我的方法应该返回true.
我的C++ - 代码:
vec.h:
#ifndef __MY_VECTOR__
#define __MY_VECTOR__
#include <stdarg.h>
template<typename VType, unsigned int dim>
class vec {
private:
VType data[dim];
public:
vec(){}
vec(VType v0, ...){
data[0] = v0;
va_list l;
va_start(l, v0);
for(unsigned int i=1; i<dim; ++i){
data[i] = va_arg(l, VType);
}
va_end(l);
}
~vec(){}
VType& operator[](unsigned int i){
return data[i];
}
VType …Run Code Online (Sandbox Code Playgroud) 我想知道数据库GeoIP2比GeoLite2数据库更准确,当两个数据库都在本月的第一个星期二下载时.
是否只省略了一些ip范围以获得不太准确的数据集?