//求兩條直線之間的關係(三維)
//輸入:兩條不為點的直線
//輸出:相交返回xiangjiao和交點p,平行返回pingxing,共線返回gongxian
int lineandline(line3d l1,line3d l2,point3d &p)
return
pinxing;
}//判斷是否共面
point3d tp=(l1.p1-l2.p1)*py;
if( !zero(tp&px) ) return xiangli;//
xiangli與平行相同
p =l1.p1;
point3d tp1=(l2.p1-l1.p1)*(l2.p1-l2.p2);
point3d tp2=(l1.p2-l1.p1)*(l2.p1-l2.p2);
double _t = norm(tp1)/norm(tp2);
//tp1和tp2肯定是共線的,如果反向則_t 為負
if( lt( (tp1&tp2),0 ) ) _t*=-1
; p.x += (l1.p2.x-l1.p1.x)*_t;
p.y += (l1.p2.y-l1.p1.y)*_t;
p.z += (l1.p2.z-l1.p1.z)*_t;
return
xiangjiao;
}void dfs(int x,double &len)
//空間兩直線最近點對
//注意:直線不能平行
double lineandline(line3d l1,line3d l2,point3d &p1,point3d &p2)
*/return
fabs(len);
}
三維空間找最近點
菜雞只會資料很小很小的做法 給定三維空間上n個點,每個點都有xi,yi,zi三個座標值 找出其中的一對點的距離,使得在這n個點的所有點對中,該距離為所有點對中最小的 輸入描述 第一行輸入整數n,2 n 1e5 第二行到第n 1行,每行輸入xi,yi,zi三個整數,代表第i個點的座標 1e4 xi,y...
HDU 1174 爆頭(三維空間點與直線關係)
hdu 1174 大意 中文題,很好理解,搞清楚各種變數就行。思路 我知道的好像有兩種解法,一種是求土匪的頭心與子彈射出的直線求點到直線距離,在判斷一下方向對不對 另一種是求出子彈射出點與土匪頭心連線,求出子彈的射出的直線,求兩直線的夾角,求出子彈射出點與土匪頭心連線,求出求出子彈射出點與土匪頭的切...
三維空間剛體旋轉
剛體 運動過程中不會產生形變的物體,運動過程中同乙個向量的長度和夾角都不會發生變化。剛體變換也稱為歐式變換。旋轉矩陣 四元數旋轉向量 尤拉角安裝方式 eigen庫只有標頭檔案,沒有.so和.a二進位制檔案,所以在cmakelists.txt中只需要新增標頭檔案路徑,並不需要使用target link...