pyopengl 正投影和透视投影变换.
正投影:平行线还是平行线
正射投影,又叫平行投影。这种投影的视景体是一个矩形的平行管道,也就是一个长方体,如图所示。正射投影的最大一个特点是无论物体距离相机多远,投影后的物体大小尺寸不变。这种投影通常用在建筑蓝图绘制和计算机辅助设计等平面图形方面,这些行业要求投影后的物体尺寸及相互间的角度不变,以便施工或制造时物体比例大小正确。
透视投影:近大远小。
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
from OpenGL.GL import *
from OpenGL.GLU import *
import sys
class OpenGLWidget(QtWidgets.QOpenGLWidget):
def __init__(self, parent=None):
super(OpenGLWidget, self).__init__(parent)
self.is_perspective = False # 默认使用正投影
def initializeGL(self):
glEnable(GL_DEPTH_TEST)
def paintGL(self):
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
if self.is_perspective:
gluLookAt(3, 3, 3, 0, 0, 0, 0, 1, 0)
else:
glTranslatef(0.0, 0.0, -5.0)
glBegin(GL_Q