From bd4247e28f639f44f1c9f9e892f7a572c054e5ae Mon Sep 17 00:00:00 2001
From: CalebChen <3149829972@qq.com>
Date: Mon, 10 Oct 2022 17:09:31 +0800
Subject: [PATCH] perspective
---
perspective/perspective.md | 138 ++++++++++++++++++
projection.py => perspective/perspective.py | 148 ++++++++++----------
perspective/pic/Figure_1.png | Bin 0 -> 22808 bytes
perspective/pic/Figure_2.png | Bin 0 -> 76505 bytes
perspective/pic/Figure_3.png | Bin 0 -> 24585 bytes
perspective/pic/Figure_4.png | Bin 0 -> 115118 bytes
perspective/pic/Figure_5.png | Bin 0 -> 33694 bytes
perspective/pic/Figure_6.png | Bin 0 -> 110838 bytes
perspective/pic/Untitled.png | Bin 0 -> 93953 bytes
9 files changed, 215 insertions(+), 71 deletions(-)
create mode 100644 perspective/perspective.md
rename projection.py => perspective/perspective.py (54%)
create mode 100644 perspective/pic/Figure_1.png
create mode 100644 perspective/pic/Figure_2.png
create mode 100644 perspective/pic/Figure_3.png
create mode 100644 perspective/pic/Figure_4.png
create mode 100644 perspective/pic/Figure_5.png
create mode 100644 perspective/pic/Figure_6.png
create mode 100644 perspective/pic/Untitled.png
diff --git a/perspective/perspective.md b/perspective/perspective.md
new file mode 100644
index 0000000..789c40b
--- /dev/null
+++ b/perspective/perspective.md
@@ -0,0 +1,138 @@
+# 透视投影
+
+# 总体思路:
+ 1.先透视变换 $P_{透视}$
+ 2.再投影 $P_{投影}$
+ 3.最终的变换矩阵 $T = P_{透视}P_{投影}$
+ 4.定点序列 $V_{new}=V_{origin}T $
+# 1. 透视
+
+## 1.1 一点透视
+
+### 步骤:
+
+ (1) 进行平移变换,将三维形体平移到适当位 置l、m、n;
+
+ (2)进行透视变换;
+
+ (3)进行投影变换,向xoy平面作正投影变换,将结果变换到xoy平面上。
+
+ 变换矩阵:
+
+
+$P_{透视}=\begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&1&0\\L&M&N&1\end{bmatrix}$
+
+
+## 1.2 两点透视
+
+### 步骤:
+
+ (1)先将三维形体平移到适当位置,使视点有一定 高度,且使形体的主要表面不会积聚成线;
+
+ (2)将形体绕y轴旋转一个φ⻆(φ<90 ̊),方向满足 右手定则;
+
+ (3)进行透视变换;
+
+ (4)最后向xoy面作正投影,即得二点透视图。
+
+ 变换矩阵:
+
+
+$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}$
+
+
+## 1.3 三点透视
+
+### 步骤:
+
+ (1)首先将三维形体平移到适当位置;;
+
+ (2)将形体进行透视变换;
+
+ (3)然后使形体先绕y轴旋转φ⻆;
+
+ (4)再绕x轴旋转θ⻆;
+
+ (5)将变形且旋转后的形体向xoy面作正投影。
+
+ 变换矩阵:
+
+
+$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}$
+
+
+# 2 投影
+
+
+
+
+
+ 首先考虑这样一种最简单的情况,假设投影中心为坐标为 $(0, 0, -d)$ ,空间中任意一点$P(x,y,z)$,投影到$xOy$平面一点$P^’(x^’,y^’,0)$,由相似三角形易证:
+
+
+$x^’= \frac{d}{d+z}*x$
+
+$y^’= \frac{d}{d+z}*y$
+
+
+ 易得,$P^’$的齐次坐标位为
+
+
+
+ $[\frac{d}{d+z}*x,\frac{d}{d+z}*y,0,1]$
+
+
+ 即
+
+
+
+$[x,y,0,\frac{1+z}d]$
+
+ 因此,投投影矩阵为
+
+
+
+$P_{投影}=\begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&0& \frac{1}{d} \\ 0&0&0&1 \\ \end{bmatrix}$
+
+ 推广:空间任意一点作为投影中心,投影到xOy平面
+
+
+
+$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}$
+
+
+# 3 实例
+ 假设初始顶点序列表示一个顶点在原点,边长为2的正方体,视点在(4,4,-2),投影平面在$xOy$。
+ 用蓝色图形表示原图形;红色图形表示透视移动后的图形;黑色图形表示投影结果;绿色平面是投影平面;粉色虚线表示进行透视所进行的变换对应关系;黄色虚线表示投影进行的变换关系。
+## 3.1 一点透视
+ 假设移动距离L=6,M=5,N=1
+
+
+
+一点透视三维示意图
+
+
+一点透视投影结果
+
+
+## 3.2 二点透视
+ 假设移动距离L=6,M=5,N=1,φ=40$^。$
+
+
+
+一二点透视三维示意图
+
+
+二点透视投影结果
+
+
+## 3.3 三点透视
+ 假设移动距离L=1,M=-3,N=4,φ=45$^。$,θ=30$^。$
+
+
+
+三点透视三维示意图
+
+
+三点透视投影结果
+
\ No newline at end of file
diff --git a/projection.py b/perspective/perspective.py
similarity index 54%
rename from projection.py
rename to perspective/perspective.py
index e70f6dd..075c427 100644
--- a/projection.py
+++ b/perspective/perspective.py
@@ -19,19 +19,38 @@ def projection_trans(view_point,points):
new_points=np.matmul(points,mtx)
return new_points
-def one_point_projection(L,M,N,view_point,point):
- '''一点'''
+def one_point_perspective(L,M,N,view_point,point):
+ '''一点透视:移动L,M,N'''
+ mtx_mv=np.array([[1,0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [L,M,N,1]],dtype=np.float32)
+ new_point=np.matmul(point,mtx_mv)
+
+ return new_point
+
+def two_point_perspective(L,M,N,a,view_point,point):
+ '''二点透视'''
+ #先移动L,M,N
mtx_mv=np.array([[1,0,0,0],
[0,1,0,0],
[0,0,1,0],
[L,M,N,1]],dtype=np.float32)
point=np.matmul(point,mtx_mv)
- # print(point)
- new_point=projection_trans(view_point,point)
- return new_point,point
-def two_point_projection(L,M,N,a,view_point,point):
- '''二点'''
+ #绕y轴旋转 a 度(a<90deg)
+ a=a/180*np.pi
+ mtx_roty=np.array([[np.cos(a),0,np.sin(a),0],
+ [0,1,0,0],
+ [-1*np.sin(a),0,np.cos(a),0],
+ [0,0,0,1]],dtype=np.float32)
+ new_point=np.matmul(point,mtx_roty)
+
+ return new_point
+
+
+def three_point_perspective(L,M,N,a,b,view_point,point):
+ '''三点透视'''
#先移动L,M,N
mtx_mv=np.array([[1,0,0,0],
[0,1,0,0],
@@ -47,71 +66,18 @@ def two_point_projection(L,M,N,a,view_point,point):
[0,0,0,1]],dtype=np.float32)
point=np.matmul(point,mtx_roty)
- # print(point)
- new_point=projection_trans(view_point,point)
- return new_point,point
-
-
-def three_point_projection(L,M,N,a,b,view_point,point):
- '''三点'''
- #先移动L,M,N
- mtx_mv=np.array([[1,0,0,0],
- [0,1,0,0],
- [0,0,1,0],
- [L,M,N,1]],dtype=np.float32)
- point=np.matmul(point,mtx_mv)
- print("aaa")
- print(point)
- #绕y轴旋转 a 度(a<90deg)
- a=a/180*np.pi
- mtx_roty=np.array([[np.cos(a),0,np.sin(a),0],
- [0,1,0,0],
- [-1*np.sin(a),0,np.cos(a),0],
- [0,0,0,1]],dtype=np.float32)
- point=np.matmul(point,mtx_roty)
- print("bbb")
- print(point)
#绕x轴旋转 b 度(b<90deg)
b=b/180*np.pi
mtx_rotx=np.array([[1,0,0,0],
[0,np.cos(b),np.sin(b),0],
[0,-1*np.sin(b),np.cos(b),0],
[0,0,0,1]],dtype=np.float32)
- point=np.matmul(point,mtx_rotx)
- print("ccc")
- print(point)
- # print(point)
- new_point=projection_trans(view_point,point)
- return new_point,point
+ new_point=np.matmul(point,mtx_rotx)
+
+ return new_point
-view_point = np.array([0,0,-1,1],dtype=np.float32)
-points= np.array([[0,0,0,1],
- [1,0,0,1],
- [1,1,0,1],
- [0,1,0,1],
- [0,0,0,1],
- [0,0,1,1],
- [1,0,1,1],
- [1,1,1,1],
- [0,1,1,1],
- [0,0,1,1],
- [0,0,0,1],
- [1,0,0,1],
- [1,0,1,1],
- [1,1,1,1],
- [1,1,0,1],
- [0,1,0,1],
- [0,1,1,1]],dtype=np.float32)
-
-
-#new_points=one_point_projection(0,0,0,view_point,points)
-new_points,ori_points=three_point_projection(2,3,1,50,30,view_point,points)
-
-new_points=homo2cart(new_points)
-
-
-def draw(view_point,ori_points,new_points):
+def draw(view_point,ori_points,mv_points,new_points):
plt.scatter(new_points[:,0],new_points[:,1],c="black")
plt.plot(new_points[:,0],new_points[:,1],c="black")
ax=Axes3D(plt.figure())
@@ -123,23 +89,63 @@ def draw(view_point,ori_points,new_points):
ax.plot_surface(X,Y,Z=X*0,color='g',alpha=0.3)
- ax.scatter(ori_points[:,0],ori_points[:,1],ori_points[:,2])
+ #原来的点阵
+ ax.scatter(ori_points[:,0],ori_points[:,1],ori_points[:,2],c="brown")
+ ax.plot(ori_points[:,0],ori_points[:,1],ori_points[:,2],c="brown")
+ #透视移动后
+ ax.scatter(mv_points[:,0],mv_points[:,1],mv_points[:,2])
ax.scatter(view_point[0],view_point[1],view_point[2],c='r')
- ax.plot(ori_points[:,0],ori_points[:,1],ori_points[:,2])
- ax.get_proj = lambda: np.dot(Axes3D.get_proj(ax), np.diag([1,1, 0.5, 1]))
-
+ ax.plot(mv_points[:,0],mv_points[:,1],mv_points[:,2])
+ ax.get_proj = lambda: np.dot(Axes3D.get_proj(ax), np.diag([1,1, 1, 1]))
+ #投影后
ax.scatter(new_points[:,0],new_points[:,1],c="black")
ax.plot(new_points[:,0],new_points[:,1],c="black")
+ #原来与移动后点两两连接
+ for i in range(len(mv_points)):
+ ax.plot([ori_points[i,0],mv_points[i,0]],[ori_points[i,1],mv_points[i,1]],[ori_points[i,2],mv_points[i,2]],c="pink",linestyle='--')
+ #两组点两两连接
+ for i in range(len(mv_points)):
+ ax.plot([mv_points[i,0],view_point[0]],[mv_points[i,1],view_point[1]],[mv_points[i,2],view_point[2]],c='y',linestyle='dashdot')
ax.set_zlabel('Z', fontdict={'size': 15, 'color': 'red'})
ax.set_ylabel('Y', fontdict={'size': 15, 'color': 'red'})
ax.set_xlabel('X', fontdict={'size': 15, 'color': 'red'})
-
-
plt.show()
+#视点(0,0,-1,1)
+view_point = np.array([4,4,-2,1],dtype=np.float32)
+#以(0,0,0)为原点的正方体
+points= np.array([[0,0,0,1],
+ [2,0,0,1],
+ [2,2,0,1],
+ [0,2,0,1],
+ [0,0,0,1],
+ [0,0,2,1],
+ [2,0,2,1],
+ [2,2,2,1],
+ [0,2,2,1],
+ [0,0,2,1],
+ [0,0,0,1],
+ [2,0,0,1],
+ [2,0,2,1],
+ [2,2,2,1],
+ [2,2,0,1],
+ [0,2,0,1],
+ [0,2,2,1]],dtype=np.float32)
+
+#获得透视移动后的点和投影后的点
+#per_points=one_point_perspective(6,5,1,view_point,points)
+#per_points=two_point_perspective(6,5,1,40,view_point,points)
+#透视移动后的点
+per_points=three_point_perspective(1,-3,3,45,30,view_point,points)
+#投影后的点
+pro_points=projection_trans(view_point,per_points)
+#转为笛卡尔坐标系
+per_points=homo2cart(per_points)
+pro_points=homo2cart(pro_points)
-draw(view_point,ori_points,new_points)
\ No newline at end of file
+#画图
+draw(view_point,points,per_points,pro_points)
\ No newline at end of file
diff --git a/perspective/pic/Figure_1.png b/perspective/pic/Figure_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4a461826c643769611e6801695d7e19cea83bfa
GIT binary patch
literal 22808
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
QTZ$=t?OpUNEz9%&8{_Bz{{R30
literal 0
HcmV?d00001
diff --git a/perspective/pic/Figure_2.png b/perspective/pic/Figure_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f959e942a67c3174df82bd2757d2aae8e86c549
GIT binary patch
literal 76505
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