基於法向量去除平面(C 練習)

2021-10-25 15:41:03 字數 3031 閱讀 8265

本**是統計所有點雲法向量最多方向,後去除滿足法向量方向點雲;

功能:想去除點雲中平面

#include

#include

#include

struct pointcloud3d

;pointcloud3d

(double val1,

double val2,

double val3)

pointcloud3d

(double val1,

double val2,

double val3,

double val4,

double val5,

double val6)};

struct normalvector;}

;//讀取檔案,輸出點雲vector

void

importpointcloud

(char

&filename, std::vector

&importpt)

import.

close()

;}//歸一化法向量

void

normalizednormalvector

(std::vector

&importpt, std::vector

&outputvector)

v =sqrt

(importpt[i]

.nx*importpt[i]

.nx + importpt[i]

.ny*importpt[i]

.ny + importpt[i]

.nz*importpt[i]

.nz)

; norvec.n_x =

(double

)importpt[i]

.nx / v;

norvec.n_y =

(double

)importpt[i]

.ny / v;

norvec.n_z =

(double

)importpt[i]

.nz / v;

= (double)importpt[i].nx;

= (double)importpt[i].ny;

= (double)importpt[i].nz;

outputvector.

push_back

(norvec);}

}//統計法向量存在最多點

void

removeplanepoint

(std::vector

&importpt, std::vector

&outputvector,

double interval, std::vector

&leftpt)

//-1與-180°與第幾份建立關係

//定義3個一維陣列,分別統計分量個數

//int number;

int number =

round

(2.0

/ interval)

;int a, b, c;

//x方向

int*statistics_x =

newint

[number]()

;//堆區開闢空間

for(

int k =

0; k < outputvector.

size()

; k++

)int max_x =

0, num_x;

//x方向上定義最大值,和對應的第幾個

for(a =

0; a < number; a++)}

//deletestatistics_x;

//y方向

int*statistics_y =

newint

[number]()

;//堆區開闢空間

for(

int k =

0; k < outputvector.

size()

; k++

)int max_y =

0, num_y;

//y方向上定義最大值,和對應的第幾個

for(b =

0; b < number; b++)}

//deletestatistics_y;

//z方向

int*statistics_z =

newint

[number]()

;//堆區開闢空間

for(

int k =

0; k < outputvector.

size()

; k++

)int max_z =

0, num_z;

//z方向上定義最大值,和對應的第幾個

for(c =

0; c < number; c++)}

//deletestatistics_z;

pointcloud3d left;

//判斷3個方向同時滿足向量

for(

int k =

0; k < outputvector.

size()

; k++)}

//迴圈求出陣列中個數最多的第幾份

//定義乙個vector存第幾個點

//統計不同時滿足三個條件最多份數的具體數值點struct的n

//根據點到處點雲

求平面法向量的方法

一.向量點積配合待定係數法 已知平面上三點 a xa,ya,za b xb,yb,zb c xc,yc,zc 那麼 ac xc xa,yc ya,zc za bc xc xb,yc yb,zc zb 設平面法向量 n xn,yn,zn 則 1 ac n 0 2 bc n 0 根據線性代數 我忘了 可...

兩平面平行方向向量關係 方向向量和法向量的關係

方向向量和法向量的關係2020 07 17 09 39 11文 王君婷 法向量是空間解析幾何的乙個概念,垂直於平面的直線所表示的向量為該平面的法向量。由於空間內有無數個直線垂直於已知平面,因此乙個平面都存在無數個法向量 包括兩個單位法向量 方向向量是乙個數學概念,空間直線的方向用乙個與該直線平行的非...

向量法計算平面與直線的交點

已知有平面上三個點 abc 座標,直線上兩個點 de 座標,求平面abc與直線de的交點座標。解 平面與直線的交點 param planta param plantb param plantc param lined param linee return public static double g...