小编maj*_*aen的帖子

以编程方式滚动QScrollArea

我有一个带有QScrollArea的Widget,我想让它在显示包含它的小部件后立即向下滚动.我试过了:

scrollArea->ensureVisible(0,100, 20, 20);
Run Code Online (Sandbox Code Playgroud)

它仅在用户调用时工作(例如按下按钮).将它放在widget contstructor或showEvent中不起作用.可以自动完成吗?

qt qt4

14
推荐指数
1
解决办法
2万
查看次数

哪些点是OpenGL z轴?

我正在尝试了解OpenGL坐标系.在任何地方我都看到它被描述为右撇子,但它与我的经验不符.我试图绘制一些形状和三维物体,我看到显然z轴指向"进入屏幕"(而x指向右边,而y向上 - 这是左手坐标系的描述).我错过了什么?

编辑:例如:
http ://img576.imageshack.us/img576/9234/triangles.jpg
如果+ Z指向观察者,为什么绿色三角形,z坐标更大,是否在红色背后?

initializeGL:

qglClearColor(Qt::darkGray);
glClearDepth(1.0);
glEnable(GL_DEPTH_TEST);
glDepthFunc( GL_LEQUAL );    
glEnable(GL_COLOR);  
Run Code Online (Sandbox Code Playgroud)

resizeGL:

glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-50.0f, 50.0f, -50.0f, 50.0f, 50.0, -50.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
Run Code Online (Sandbox Code Playgroud)

paintGL:

glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef (-30.0, 1.0, 0.0, 0.0);
glRotatef (20.0, 0.0, 1.0, 0.0);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex3f(45.0, 0.0, 0.0);
glVertex3f(-45.0, 0.0, 0.0);
glVertex3f(0.0, 45.0,  0.0);
glVertex3f(0.0, -45.0,  0.0);
glVertex3f( 0.0, 0.0, 45.0);
glVertex3f( 0.0, 0.0, -45.0);
glEnd();
glBegin(GL_TRIANGLES);
//Red triangle:
glColor3f(1.0, 0.0, 0.0);
glVertex3f(0.0, …
Run Code Online (Sandbox Code Playgroud)

opengl 3d

12
推荐指数
3
解决办法
2万
查看次数

围绕给定点旋转

我有一个观点,比如p(0.0,0.0,20.0),我想在XZ平面上绕点a(0.0,0.0,10.0)旋转.最简单的方法是什么?我正在使用Qt与QVector3D和QMatrix4x4来执行转换.我能想到的一切都是这样的:

QVector3D p(0.0, 0.0, 20.0);
QVector3D a(0.0, 0.0, 10.0);
QMatrix4x4 m;

m.translate(-a.x(), -a.y(), -a.z());
p = m*p;

m.setToIdentity();
m.rotate(180, 0.0, 1.0, 0.0);
p = m*p;

m.setToIdentity();
m.translate(a.x(), a.y(), a.z());
p = m*p;
Run Code Online (Sandbox Code Playgroud)

但这对我来说似乎很复杂,我想知道是否有更简单或更优雅的解决方案?

3d geometry qt computational-geometry

5
推荐指数
1
解决办法
6496
查看次数

标签 统计

3d ×2

qt ×2

computational-geometry ×1

geometry ×1

opengl ×1

qt4 ×1