三維空間直線最近點對hdu4741

2021-09-07 05:31:28 字數 879 閱讀 9450

//

求兩條直線之間的關係(三維)

//輸入:兩條不為點的直線

//輸出:相交返回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...