使用qgsmaptoolpan后怎样取消漫游
时间: 2023-07-20 22:21:34 浏览: 145
当您使用 qgsMapToolPan 工具进行地图漫游操作后,可以通过以下方法取消漫游:
1. 单击地图窗口中的鼠标右键,打开上下文菜单。
2. 在上下文菜单中选择“取消漫游”选项。
3. 或者,您可以按ESC键来取消漫游操作。
这将使地图回到漫游操作之前的状态,即将地图恢复到之前的位置和缩放级别。
相关问题
使用qgsmaptoolpan改变鼠标样式后,怎样返回
当使用 qgsMapToolPan 更改鼠标样式时,可以通过以下步骤返回默认鼠标样式:
1. 在使用 qgsMapToolPan 的地图窗口中,单击鼠标右键打开上下文菜单。
2. 在上下文菜单中,选择“返回默认工具”选项。
3. 这将使地图工具返回到默认的漫游工具(即没有更改鼠标样式的工具),并将鼠标样式恢复为默认值。
如果您希望在更改鼠标样式后仍然使用 qgsMapToolPan 工具,则可以使用 qgsMapToolPan 的 setCursor() 函数来设置自定义鼠标样式,并使用 unsetCursor() 函数来将鼠标样式设置回默认值。
使用OpenGL和c++实现场景漫游算法代码
以下是一个简单的OpenGL和C语言实现场景漫游算法的示例代码,其中使用了glut库:
```c
#include <GL/glut.h>
#include <stdio.h>
// 全局变量
float angle = 0.0f; // 摄像机旋转角度
float cameraX = 0.0f, cameraY = 0.0f, cameraZ = 5.0f; // 摄像机位置
float speed = 0.1f; // 摄像机移动速度
// 初始化函数
void init(void)
{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // 设置背景颜色为黑色
}
// 绘制函数
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓冲区
glLoadIdentity(); // 重置变换矩阵
// 设置摄像机位置和方向
gluLookAt(cameraX, cameraY, cameraZ, cameraX, cameraY, cameraZ - 1.0f, 0.0f, 1.0f, 0.0f);
// 绘制场景
glPushMatrix(); // 压入变换矩阵
glRotatef(angle, 0.0f, 1.0f, 0.0f); // 绕Y轴旋转
glColor3f(1.0f, 0.0f, 0.0f); // 设置颜色为红色
glutSolidTeapot(1.0f); // 绘制茶壶
glPopMatrix(); // 弹出变换矩阵
glutSwapBuffers(); // 切换前后缓冲区
}
// 键盘事件处理函数
void keyboard(unsigned char key, int x, int y)
{
switch (key)
{
case 'w': // 摄像机向前移动
cameraZ -= speed;
break;
case 's': // 摄像机向后移动
cameraZ += speed;
break;
case 'a': // 摄像机向左移动
cameraX -= speed;
break;
case 'd': // 摄像机向右移动
cameraX += speed;
break;
case 'q': // 摄像机向上移动
cameraY += speed;
break;
case 'e': // 摄像机向下移动
cameraY -= speed;
break;
case 'j': // 摄像机逆时针旋转
angle -= 5.0f;
break;
case 'l': // 摄像机顺时针旋转
angle += 5.0f;
break;
}
glutPostRedisplay(); // 重新绘制场景
}
// 主函数
int main(int argc, char **argv)
{
glutInit(&argc, argv); // 初始化glut库
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); // 设置显示模式
glutInitWindowSize(800, 600); // 设置窗口大小
glutInitWindowPosition(100, 100); // 设置窗口位置
glutCreateWindow("Scene Roaming"); // 创建窗口并设置窗口标题
init(); // 初始化函数
glutDisplayFunc(display); // 注册绘制函数
glutKeyboardFunc(keyboard); // 注册键盘事件处理函数
glutMainLoop(); // 进入消息循环
return 0;
}
```
在这个示例程序中,我们使用glut库创建了一个窗口,并在窗口中绘制了一个旋转的红色茶壶。我们可以通过键盘事件处理函数来控制摄像机的移动和旋转,从而实现场景漫游。