OpenGL用GLFW库创建窗口,以屏幕中心点作为坐标原点,绘制坐标轴,默认屏幕坐标范围为(-100,100)范围
时间: 2024-10-23 21:10:29 浏览: 31
OpenGL是一个跨平台的图形API,而GLFW是一个简单易用的跨平台窗口管理和输入处理库。要使用GLFW创建一个以屏幕中心点作为坐标原点、并设置默认屏幕坐标的窗口,你需要按照以下步骤进行:
1. **安装和配置GLFW**:
首先确保你已经安装了GLFW库,并配置好开发环境。如果你还没有安装,可以从其官网(https://www.glfw.org/)下载并根据文档指引安装。
2. **初始化GLFW**:
编写代码时,需要包含GLFW头文件,并初始化 GLFW。这包括创建窗口、设置回调函数等。
```cpp
#include <GLFW/glfw3.h>
// 初始化GLFW
int main() {
if (!glfwInit()) {
std::cerr << "Failed to initialize GLFW" << std::endl;
return -1;
}
}
```
3. **创建窗口**:
创建一个全屏窗口,并将其位置设在屏幕中心。`glfwSetWindowPos()` 函数用于设置窗口的位置。
```cpp
// 创建窗口
const GLFWwindow* window = glfwCreateWindow(
640, // 宽度
480, // 高度
"OpenGL Window", // 标题
nullptr, // 没有父窗口
nullptr // 不附加到已存在的窗口
);
if (!window) {
std::cerr << "Failed to create window" << std::endl;
glfwTerminate();
return -1;
}
// 将窗口设置在屏幕中心
glfwSetWindowPos(window, (glfwGetPrimaryMonitor()- 640) / 2,
(glfwGetPrimaryMonitor()->height - 480) / 2);
```
4. **设置视口**:
设置窗口内的渲染区域,即视口大小和位置。默认情况下,视口会填充整个窗口,但你可以手动调整范围,这里我们保持默认(-1, +1)的视口比例。
```cpp
// 设置视口
glViewport(0, 0, 640, 480);
```
5. **清除颜色缓冲**:
清除背景颜色,通常选择黑色(0.0, 0.0, 0.0, 1.0)。
```cpp
// 清除颜色缓冲
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
```
6. **绘制坐标轴**:
你需要自己编写代码来绘制坐标轴,这可能涉及计算每个轴的长度和坐标点,然后使用顶点着色器或直接在像素级别进行渲染。
7. **显示窗口**:
之后调用 `glfwSwapBuffers()` 来交换渲染缓冲和实际显示的缓冲区。
```cpp
// 显示窗口
while (!glfwWindowShouldClose(window)) {
// 用户交互逻辑...
// 更新窗口内容
glfwPollEvents();
glClear(GL_COLOR_BUFFER_BIT);
// 绘制坐标轴
glfwSwapBuffers(window);
}
// 关闭窗口和GLFW
glfwTerminate();
return 0;
```
阅读全文