WebGL5 三維空間的觀察

2022-08-16 10:51:10 字數 1999 閱讀 5454

1、認識相機

在threejs中相機的表示是three.camera,他是相機的抽象基類;

其子類有兩種相機,分別是正投影相機three.orthographiccamera和透視投影相機three.perspectivecamera.

關於兩者之間的區別:

總結:透視投影有乙個基本點,就是遠處的物體比近處的物體小;

正投影其特點為遠近高低比例都相同;

2、正投影相機

其建構函式如下:orthographiccamera(left,right,top,bottom,near,far)

引數說明:

① left----左平面距離相機中心點的垂直距離;

② right ---- 右平面距離相機中心點的垂直距離;

③ top ---- 頂平面距離相機中心點的垂直距離;

④ bottom ---- 底平面距離相機中心點的垂直距離;

⑤ near ---- 近平面距離相機中心點的垂直距離;

⑥ far ---- 遠平面距離相機中心點的垂直距離;

var camera = new three.orthographiccamera(-width/2,width/2,height/2,-height/2,1,1000);

上面例子將瀏覽器視窗的寬度和高度作為視景體的寬度和高度,相機正好在視窗的中心點上;

3、透視投影相機

建構函式: perspectivecamera(fov,aspect,near,far);

引數說明:

① 視角fov---理解為眼睛睜開的角度;

② 縱橫比aspect----實際視窗的縱橫比,即寬度/高度;這個值越大說明你是寬屏;

③ 近平面 near----:表示你近處的裁面距離。可以理解為眼睛距離近處的距離;

④ 遠平面 far ----:遠處的裁面;

var camera = new three.perspectivecamera(45,width/height,1,1000);

案例-----通過更改透視投影相機的視角fov,物體越來越小;

關鍵**:

function animation()

function setcamerafov(fov)

function changefov()

三維空間剛體旋轉

剛體 運動過程中不會產生形變的物體,運動過程中同乙個向量的長度和夾角都不會發生變化。剛體變換也稱為歐式變換。旋轉矩陣 四元數旋轉向量 尤拉角安裝方式 eigen庫只有標頭檔案,沒有.so和.a二進位制檔案,所以在cmakelists.txt中只需要新增標頭檔案路徑,並不需要使用target link...

BFS 三維空間迷宮

題面 你被困在乙個三維的空間中,現在要尋找最短路徑逃生!空間由立方體單位構成。每次向上下前後左右移動乙個單位需要一分鐘,且不能對角線移動。空間的四周封閉。你的目標是走到空間的出口。問是否存在逃出生天的可能性?如果存在,則需要多少時間?輸入第一行是乙個數表示空間的數量。每個空間的描述的第一行為l,r和...

三維空間和四維空間

從螞蟻走路可以看出。由於螞蟻受限於自己的身體沒有翅膀,就跟人沒有翅膀一樣,碰到吊在自己頭頂的東西就只能繞遠路通過二維的方法到達三維的地方,所以只要有工具,可以是翅膀,可以是深深固定地上的梯子,也可以是飛機,都可以從受限的二維空間達到三維空間。而且這些手段全都是為了用來克服重力的,所以重力跟第三維有不...