二维图像到二维屏幕的显示,对应屏幕坐标

本文介绍如何使用OpenGL的gluOrtho2D函数将二维图像坐标映射到屏幕坐标,并通过调整投影矩阵,使得屏幕坐标原点位于左上角,避免额外的坐标转换。提供了一个简单的OpenGL窗口程序,展示了点击屏幕时如何绘制点,并实时更新屏幕坐标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

    默认情况下,中心点在屏幕的中心,范围都是从[-1,1],所以物体的实际坐标映射到屏幕坐标需要一个转换过程,上文中描述到使用gluOrtho2D函数通过正投影,将物理坐标映射到屏幕坐标,但是坐标的原点在左下角,一般情况下,屏幕的原点都是从左上角开始,因此在上述的所有例子中,都需要重新计算Y轴的坐标,屏幕的高减去点Y轴分量。现在通过重新设置正射投影的左下角坐标和右上角的坐标,建立一一对应的关系,而不再需要进行任何的转换,类似于旋转相机,达到调整坐标系的作用

代码

#include <gl/glut.h>

#include <Windows.h>

#define WINDOWHEIGHT 480

#define WINDOWWIDTH  800

void myInit()

{

  glClearColor(1.0,1.0,1.0,0.0);

  glMatrixMode(GL_PROJECTION);

  glLoadIdentity();

  //gluOrtho2D(0.0, WINDOWWIDTH, 0.0, WINDOWHEIGHT);

  gluOrtho2D(0.0, WINDOWWIDTH , WINDOWHEIGHT, 0.0);

}

void myDisplay(void)

{

  glClearColor(1.0f, 1.0f, 1.0f, 0.0f);

  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  glFlush();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值