MATLAB Function Reference |
Syntax
T = viewmtx(az,el) T = viewmtx(az,el,phi) T = viewmtx(az,el,phi,xc)
Description
viewmtx
計算一 4*4 的垂直或透視轉置矩陣其將四維同次向量轉成二維表面的視野。
T = viewmtx(az,el)
回傳一垂直轉置矩陣根據方位 az
和高度 el
。az
為視角方位的角度,而 el
為視角的高度。以下的指令回傳相同的矩陣
view(az,
el)
T = view
T = viewmtx(az,el,phi)
回傳一透視轉置矩陣。phi
為透視視角的角度。
Phi |
Description |
0 度 |
垂直投射 |
10 度 |
近似於遠距鏡頭 |
25 度 |
近似於一般鏡頭 |
60 度 |
近似於廣角鏡頭 |
可使用回傳的矩陣及 view(T)
設定視覺轉換。4*4
的透視轉置矩陣將四維同次向量轉置成形態為 (x,y,z,w) 的非常態化向量,其中 w 不等於 1。常態向量 (x/w, y/w, z/w,
1) 的 x- 和 y- 元件要求為二維的元件(可參考下面的範例)。
T = viewmtx(az,el,phi,xc)
回傳使用 xc
當做在常態化繪製正方體目標點的透視轉置矩陣。xc
為視野中心的目標點。可以三元素向量定義此點,即 xc = [xc,yc,zc]
在範圍 [0,1] 之間。預設值為 xc = [0,0,0]
。
Remarks
四維同次向量是藉由將 1 併入對應的三維向量而產生。舉例來說,[x,y,z,1]
為四維向量其對應至三維點 [x,y,z]
。
Examples
使用預設的視覺方位來決定投射的二維向量其對應至三維點 (0.5,0.0,--3.0)。注意該點為欄向量。
A = viewmtx(--37.5,
30); x4d = [.5 0 --3 1]'; x2d =A
*x4d; x2d = x2d(1:2) x2d = 0.3967 --2.4459
x = [0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0]; y = [0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1]; z = [0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0];
A = viewmtx(--37.5,30); [m,n] = size(x); x4d = [x(:),y(:),z(:),ones(m*n,1)]'; x2d = A*x4d; x2 = zeros(m,n); y2 = zeros(m,n); x2(:) = x2d(1,:); y2(:) = x2d(2,:); plot(x2,y2)
A = viewmtx(--37.5,30,25
);
x4d = [.5 0 --3 1]';
x2d = A*x4d;
x2d = x2d(1:2)/x2d(4) % Normalize
x2d =
0.1777
--1.8858
A = viewmtx(--37.5,30,25); [m,n] =size
(x); x4d = [x(:),y(:),z(:),ones
(m*n,1)]'; x2d = A*x4d; x2 =zeros
(m,n); y2 = zeros(m,n); x2(:) = x2d(1,:)./x2d(4,:); y2(:) = x2d(2,:)./x2d(4,:);plot
(x2,y2)
See Also
view | volumebounds |