0
glVertex로 일부 선을 이동하는 방법을 찾고 있지만 지금까지는 내 코드가 없습니다. 나는 움직이지 않으려 고 노력했다. 작동하지 않는다. 나는 번역을 추가하는데 지쳤다. 끊임없이 패닝을하면 작동하지 않는다. 그리고 나는 줌과 함께 무엇을 해야할지 전혀 모릅니다. 아마도 카메라를 만들어서 그것을 완전한 3D 장면으로 만들어야할까요? 그러나 나는 그것에 대한 좋은 문서를 찾지 못했기 때문에 누군가가 내게 빛을 줄 수 있기를 바랍니다. 감사합니다.QtOpenGL의 정점 선을 이동하고 줌하는 방법
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
from PyQt4 import QtGui, QtCore
from PyQt4.QtOpenGL import *
class SampleWidget(QGLWidget):
xTranslationChanged = QtCore.pyqtSignal(int)
yTranslationChanged = QtCore.pyqtSignal(int)
def __init__(self, parent=None):
super(SampleWidget, self).__init__(parent)
self.xTrans = 0
self.yTrans = 0
self.w = 1600
self.h = 900
self.lastPos = QtCore.QPoint()
self.v_pos = [[50, 50], [75, 100], [100, 150], [200, 200], [300, 250], [400, 450]]
def paintGL(self):
glClear(GL_COLOR_BUFFER_BIT)
glBegin(GL_LINE_STRIP)
glColor3f(1.0, 0.0, 0.0)
for i, x in enumerate(self.v_pos):
if i < len(self.v_pos) - 1:
glVertex2i(self.v_pos[i][0], self.v_pos[i][1])
glVertex2i(self.v_pos[i + 1][0], self.v_pos[i + 1][1])
glEnd()
def resizeGL(self, w, h):
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(0, 1600, 0, 900, -1.0, 1.0)
#glViewport(0, 0, w, h)
def initializeGL(self):
glClearColor(0.0, 0.0, 0.0, 1.0)
glClear(GL_COLOR_BUFFER_BIT)
def mousePressEvent(self, event):
self.lastPos = event.pos()
def mouseMoveEvent(self, event):
dx = event.x() - self.lastPos.x()
dy = event.y() - self.lastPos.y()
# self.xTranslate(dx)
# self.yTranslate(dy)
glViewport(dx, dy, dx + 1600, dy + 900)
if event.buttons() & QtCore.Qt.RightButton:
pass
def xTranslate(self, dx):
self.xTrans = dx
self.xTranslationChanged.emit(dx)
self.updateGL()
def yTranslate(self, dy):
self.yTrans = -dy
self.yTranslationChanged.emit(dy)
self.updateGL()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
widget = SampleWidget()
widget.show()
app.exec_()