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

简介:

说明

    默认情况下,中心点在屏幕的中心,范围都是从[-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();

}


void myMouse(int button,int state,int x,int y)

{

  if(state==GLUT_DOWN)

  {

    glPointSize(10);

      glBegin(GL_POINTS);

        glColor3f(1.0f, 0.0f, 0.0f);

        //glVertex2f(x, WINDOWHEIGHT-y);

        glVertex2f(x,  y);

      glEnd();

    glFlush();

  }

}


int main(int argc, char* argv[])

{

  glutInit(&argc, argv);

  glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);

  glutInitWindowSize(WINDOWWIDTH, WINDOWHEIGHT);

  glutInitWindowPosition(100,150);

  glutCreateWindow("OpenGL 窗口1");

  glutDisplayFunc(&myDisplay);

  glutMouseFunc(&myMouse);

  myInit();

  glutMainLoop();

  return 0;

}





    本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1881833,如需转载请自行联系原作者





相关文章
|
3月前
|
API C++ 计算机视觉
【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++
【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++
|
4月前
|
计算机视觉
OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字
OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字
44 0
|
6月前
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
102 0
|
计算机视觉
五、OpenCV绘制线、矩形、圆等基本几何形状
通过javaOpenCV中的Imgproc函数进行简单几何图形的绘制
99 0
五、OpenCV绘制线、矩形、圆等基本几何形状
|
图形学
Unity 之 获取物体的旋转角正确数值
不管父物体如何设置,都能获取到物体本身旋转角度的正确数值
929 0
在画图软件中,可以画出不同大小或颜色的圆形、矩形等几何图形。几何图形之间有许多共同的特征,如它们可以是用某种颜色画出来的,可以是填充的或者不填充的。
编写Java程序:在画图软件中,可以画出不同大小或颜色的圆形、矩形等几何图形。几何图形之间有许多共同的特征,如它们可以是用某种颜色画出来的,可以是填充的或者不填充的。
【MATLAB】二维绘图 ( 绘制二维图像 | 设置图像样式 )(一)
【MATLAB】二维绘图 ( 绘制二维图像 | 设置图像样式 )(一)
219 0
【MATLAB】二维绘图 ( 绘制二维图像 | 设置图像样式 )(一)
【MATLAB】二维绘图 ( 绘制二维图像 | 设置图像样式 )(二)
【MATLAB】二维绘图 ( 绘制二维图像 | 设置图像样式 )(二)
165 0
【MATLAB】二维绘图 ( 绘制二维图像 | 设置图像样式 )(二)
|
算法 计算机视觉 Python
霍夫变换绘制出图案里的直线
霍夫变换绘制出图案里的直线