C 實現3D平面 線 點

2021-10-11 03:05:15 字數 2639 閱讀 4780

如何表示直線?

直線在二維空間的表示方法非常簡單 y=a

x+

by = ax + b

y=ax+b

那麼在三維空間的表示方法有三種[1]:

點向式、引數方程、兩個平面方程聯立

如何表示平面?

使用法向量和平面上的點方式表示乙個平面[2]

class

plane

vec3f n()

const

private

:float _d;

vec3f _n;

};

class

line3d

vec3f dire()

private

: point3f _p0;

vec3f _dire;

};

vec3f, point3f 都是opencv相關的值

//************************************

// method: intersectlineplanes

// fullname: intersectlineplanes

// access: public

// returns: int pl_export

// qualifier: 計算兩個平面相交的交線

// parameter: const plane & p1 輸入3d平面1

// parameter: const plane & p2 輸入3d平面2

// parameter: line3d & dest 輸出交線

//************************************

intintersectlineplanes

(const plane& p1,

const plane& p2, line3d& dest)

;//************************************

// method: anglebwttwoplanes

// fullname: anglebwttwoplanes

// access: public

// returns: float 返回平面夾角的弧度值

// qualifier: 計算兩個平面的夾角

// parameter: const plane & p1 輸入3d平面1

// parameter: const plane & p2 輸入3d平面2

//************************************

float

anglebwttwoplanes

(const plane& p1,

const plane& p2)

;//************************************

// method: radian2angle

// fullname: radian2angle

// access: public

// returns: float 返回角度值

// qualifier: 弧度換算為角度

// parameter: float radian 輸入弧度值

//************************************

float

radian2angle

(float radian)

;//************************************

// method: angle2radian

// fullname: angle2radian

// access: public

// returns: float 返回弧度值

// qualifier: 角度換算為弧度

// parameter: float angle 輸入角度值

//************************************

float

angle2radian

(float angle)

;

平面與平面相交
int

intersectlineplanes

(const plane& p1,

const plane& p2, line3d& dest)

平面夾角
float

anglebwttwoplanes

(const plane& p1,

const plane& p2)

弧度與角度轉換函式
float

radian2angle

(float radian)

float

angle2radian

(float angle)

點雲平面提取 彙總 3D點雲分割演算法

最近在arxiv和一些會議上看到了幾篇3d點雲分割 覺得還不錯,在這裡分享下基本思路。除了區域性特徵外,全域性資訊在語義分割中起著至關重要的作用,而現有的研究往往無法明確地提取出有意義的全域性資訊並加以充分利用。本文提出了乙個場景編碼模組來實施場景感知指導,以增強全域性資訊的效果。該模組 場景描述符...

關於3D點雲濾波

點雲是三維離散資料,影象是二維稠密矩陣。資料型別的不同決定了其處理方式的差異,但濾波的基本原理和目的有相同之處 利用資料的低頻特性剔除離群資料,並進行資料平滑或提取特定頻段特徵。點雲濾波包括剔除離群點,擬合區域性平面,方法分別有ransac與3d擬合。影象濾波側重於糾正雜訊點 如中值濾波 並平滑影象...

iOS實現3D旋轉

最近看到了乙個3d旋轉的動畫,就想著自己去實現以下。那麼,接下來就通過這邊文章記錄以下學習過程,慢慢深入了解以下3d旋轉。一 如何旋轉 每個view都在系統的座標系中,就手機螢幕來說,左上角為 0 0 向右橫向的為x軸正方向,向下縱向的為y軸正方向,垂直於手機螢幕的方向既z軸方向。所以z軸的旋轉屬於...