Loading... ### 总体思路:先透视变换,再投影,最终的变换矩阵$A = P_{透视}*P_{投影}$ # 1. 透视 ## 1.1 一点透视 ### 步骤: (1) 进行平移变换,将三维形体平移到适当位 置l、m、n; (2)进行透视变换; (3)进行投影变换,向xoy平面作正投影变换,将结果变换到xoy平面上。 变换矩阵: <center> $P_{透视}=\begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&1&0\\L&M&N&1\end{bmatrix}$ </center> ## 1.2 两点透视 ### 步骤: (1)先将三维形体平移到适当位置,使视点有一定 高度,且使形体的主要表面不会积聚成线; (2)将形体绕y轴旋转一个φ⻆(φ<90 ̊),方向满足 右手定则; (3)进行透视变换; (4)最后向xoy面作正投影,即得二点透视图。 变换矩阵: <center> $P_{透视}=\begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&1&0\\L&M&N&1\end{bmatrix}\begin{bmatrix} cos(φ)&0&sin(φ)&0\\0&1&0&0\\-sin(φ)&0&cos(φ)&0\\0&0&0&1\end{bmatrix}$ </center> ## 1.3 三点透视 ### 步骤: (1)首先将三维形体平移到适当位置;; (2)将形体进行透视变换; (3)然后使形体先绕y轴旋转φ⻆; (4)再绕x轴旋转θ⻆; (5)将变形且旋转后的形体向xoy面作正投影。 变换矩阵: <center> $P_{透视}=\begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&1&0\\L&M&N&1\end{bmatrix}\begin{bmatrix} cosφ&0&sinφ&0\\0&1&0&0\\-sinφ&0&cosφ&0\\0&0&0&1\end{bmatrix}\begin{bmatrix} 1&0&0&0\\0&cosθ&sinθ&0\\0&-sinθ&cosθ&0\\0&0&0&1\end{bmatrix}$ </center> # 2 投影 <center> <img src="https://gallery-of-jafari.oss-cn-beijing.aliyuncs.com/caleb.ink/2022/10/401297090.png   首先考虑这样一种最简单的情况,假设投影中心为坐标为 $(0, 0, -d)$ ,空间中任意一点$P(x,y,z)$,投影到$xOy$平面一点 $P’(x’,y’,0)$,由相似三角形易证: <center> $x'= \frac{d}{d+z}*x$ $y'=\frac{d}{d+z}*y$ </center>   易得,$P’$的齐次坐标位为 <center> $[\frac{d}{d+z}*x,\frac{d}{d+z}*y,0,1]$ </center> 即 <center> $[x,y,0,\frac{1+z}d]$ </center> 因此,投投影矩阵为 <center> $P_{投影}=\begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&0& \frac{1}{d} \\ 0&0&0&1 \\ \end{bmatrix}$ </center>   推广:空间任意一点作为投影中心,投影到xOy平面 <center> $P_{投影}=\begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&1&0 \\ -x_0&-y_0&0&1 \\ \end{bmatrix}\begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&0& \frac{1}{d} \\ 0&0&0&1 \\ \end{bmatrix} \begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&1&0 \\ x_0&y_0&0&1\\ \end{bmatrix}= \begin{bmatrix} 1&0&0&0\\0&1&0&0\\\frac{x}{d}& \frac{y}{d}&0& \frac{1}{d} \\ 0&0&0&1\\ \end{bmatrix}$ </center> 最后修改:2024 年 09 月 05 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 2 如果觉得我的文章对你有用,请随意赞赏