平面方程式ax+by+cz+d=0於程式中遇到的問題 |
尚未結案
|
bigpipi999
一般會員 發表:4 回覆:4 積分:1 註冊:2004-08-04 發送簡訊給我 |
小弟是新手,且不是工程及數學背景出身的
目前在研究3D程式設計,在參考資料上遇到了下列的問題 struct Point{ float x,y,z; }; //頂點宣告
struct Plane{ float a,b,c,d; }; //平面方程式宣告 Point *v1;
Point *v2;
Point *v3;
Plane Face; SetVertex(v1); //將X,Y,Z值填入V1
SetVertex(v2); //將X,Y,Z值填入V2
SetVertex(v3); //將X,Y,Z值填入V3 void CalculatePlane()
{
Face.a=v1.y*(v2.z-v3.z) v2.y*(v3.z-v1.z) v3.y*(v1.z-v2.z);
Face.b=v1.z*(v2.x-v3.x) v2.z*(v3.x-v1.x) v3.z*(v1.x-v2.x);
Face.c=v1.x*(v2.y-v3.y) v2.x*(v3.y-v1.y) v3.x*(v1.y-v2.y);
Face.d=-(v1.x*(v2.y*v3.z-v3.y*v2.z) v2.x*(v3.y*v1.z-v1.y*v3.z)
v3.x*(v1.y*v2.z-v2.y*v1.z));
} 小弟我看了很久也查了一些資料,但還是看不懂上面CalculatePlane()到底作用為何?
求出a,b,c,d值後各代表什麼?煩請各位幫忙,謝謝
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
空間中不在一直線上的相異三點可決定 ㄧ個平面(就是只有唯一的一個平面包含這三點) 這個函數 應該是給三點求出 ax by cz d=0 的 a,b,c,d 的值, a,b,c,d值求出後, 就等於求出平面了... 例如
a=1,b=0,c=0,d=0 就是 x=0 , 也就是 y,z 軸張開的那個平面
a=1,b=0,c=0,d=-1 就是 x=1 , 也就是平行於 y,z 軸張開的那個平面而且x=1 的平面.... 發表人 - malanlk 於 2005/08/21 12:52:37
|
bigpipi999
一般會員 發表:4 回覆:4 積分:1 註冊:2004-08-04 發送簡訊給我 |
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |