已知空間三點組成的面求該面上某點的Z值

2022-07-04 01:48:14 字數 720 閱讀 6248

已知空間三點,那麼可以就可以確定空間三點組成的平面。此時可以根據某一點的x值和y值,來求取該點在平面上的z值。這個過程對於求三角麵片上某點的高程或者權值特別有用,其本身也可以看作一種線性插值。

其演算法思路也特別簡單,首先算出其三點組成的平面法向量(可參看《已知三點求平面法向量》);然後根據平面法向量\(n=(a,b,c)\)和平面上某點\(m=(x0,y0,z0)\),有平面的點法式方程:

\[a(x-x0)+b(y-y0)+c(z-z0)=0

\]最後根據欲求點的x、y值,代入公式解算z值即可。

具體實現**如下:

#includeusing namespace std;

//三維double向量

struct vec3d

vec3d(double dx, double dy, double dz)

void set(double dx, double dy, double dz) };

//計算三點成面的法向量

void cal_normal_3d(const vec3d& v1, const vec3d& v2, const vec3d& v3, vec3d &vn)

void calplanepointz(const vec3d& v1, const vec3d& v2, const vec3d& v3, vec3d& vp) }

int main()

已知三點求圓心與半徑

已知三點求圓心與半徑 kezunhai gmail.com 在計算機影象圖形學中,經常會用到求圓心或圓半徑的情況,本文介紹一種已知三個點求圓心和圓半徑的方法 當然三個點不能共線,共線的三個點不能構成圓 原理 相互連線三個點,選取其中的任意兩條直線,通過對這兩條直線的中心做垂線,兩條垂線的交點就是圓心...

軟考之路(三) 組成原理

知識概覽1 計算機中的資訊不僅有資料,還有字元 命令,其中資料還有大與小 正數與負數之分。計算機是如何用 0 或 1 來表示這些資訊的呢?1 計算機中數的表示形式 在計算機中,只有數碼1和0兩種不同的狀態,對於乙個數的正 負號,兩種不同狀態,約定正數的符號用0表示,負數的符號用1表示,將符號位放在數...

軟考之路(三) 組成原理

知識概覽1 計算機中的資訊不僅有資料。還有字元 命令,當中資料還有大與小 正數與負數之分。計算機是怎樣用 0 或 1 來表示這些資訊的呢?1 計算機中數的表示形式 在計算機中,僅僅有數碼1和0兩種不同的狀態,對於乙個數的正 負號,兩種不同狀態,約定正數的符號用0表示,負數的符號用1表示,將符號位放在...