gluOrtho2D与比例尺之间的关系

说明

gluOrtho2D(0.0, WINDOWWIDTH , WINDOWHEIGHT/2, 0.0);第三个参数取其一半,打点的Y坐标扩大了一倍.渲染直线的情况下,通过将第二参数和第三参数进行按比例尺放缩,实际上,可达到渲染图形缩放的效果。所以gluOrtho2D函数定义了屏幕坐标多少个单位像素表示投影矩阵的单位一

代码

#include <gl/glut.h>

#include <Windows.h>

#define WINDOWHEIGHT 480

#define WINDOWWIDTH  800

void myInit()

{

glClearColor(1.0,1.0,1.0,0.0);

glLineWidth(3.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

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

gluOrtho2D(0.0, WINDOWWIDTH , WINDOWHEIGHT/2, 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;

}

代码2

#include <gl/glut.h>

#include <Windows.h>

#define WINDOWHEIGHT 480

#define WINDOWWIDTH  800

void myInit(int scale)

{

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

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glFlush();

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0, WINDOWWIDTH/scale , WINDOWHEIGHT/scale, 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)

{

static int scale = 2;

if(state==GLUT_DOWN)

{

myInit(scale);

scale = scale + 2;

glLineWidth(10);

glBegin(GL_LINES);

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

glVertex2f(10,  10);

glVertex2f(20,  20);

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);

glutMainLoop();

return 0;

}

时间: 2024-10-01 13:26:47

gluOrtho2D与比例尺之间的关系的相关文章

深入Linux内核架构 - 内核之中数据结构之间的关系图 &amp; 设备驱动程序(转)

内核之中数据结构之间的关系图 设备驱动程序

Spring初学之bean之间的关系和bean的作用域

一.bean之间的关系 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.o

Spring学习--Bean 之间的关系

Bean 之间的关系:继承.依赖. Bean 继承: Spring 允许继承 bean 的配置 , 被继承的 bean 称为父 bean , 继承这个父 bean 的 bean 称为子 bean. 子 bean 从父 bean 中继承配置 , 包括 bean 的属性配置. 子 bean 也可以覆盖从父 bean 继承过来的配置. 父 bean 可以作为配置模板 , 也可以作为 bean 实例.若只想把父 bean 作为模板 , 可以设置 <bean> 的 abstract 属性为 true ,

Linux中的文件描述符与打开文件之间的关系

1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符.程序刚刚启动的时候,0是标准输入,1是标准输出,2是标准错误.如果此时去打开一个新的文件,它的文件描述符会是3.POSIX标准要求每次打开文件时(含socket)必须使用当前进程中最小可用的文件描述符号

WEB组件之间的关系

WEB组件之间的关系: A:重定向的特点: 1:发生客户端 2:地址栏发生变化 3:两个WEB组件不共享request的数据. 服务端的方法:response.sendRedirect(); 服务端的方法:response.sendRedirect("相对路径");   相对路径 request.getContextpath+"路径" 客户端的方法: window.location.href='URL地址' B:请求转发: request.getRequestDis

oracle动态视图v$,v_$,gv$,gv_$与x$之间的关系

前言:在oracle运维的过程中,经常会使用到一些以V$开头的动态视图,比如V$session, 有一次偶然看到有人用V_$session, 初以为别人写错了,没想到desc v_$session以后能看到和v$session一样的结构,再以后又发现以gv$开头的视图等等.趁这次在一台Linux系统上装oracle的机会,终于弄清楚了这些动态视图与相应表之间的关系.这些都是由oracle自己管理的数据结构,得从v$fixed_table入手:[[email protected] admin]$

Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系

2条评论 Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator 控制动画播放的同时,设置 Animator 的 applyRootMotion 字段为 True 就 OK 了. 那么怎么来利用这个特性达成我们想要的一些效果呢?这个 applyRootMotion 到底指的是啥呢? ApplyRootMotion,从字面上理解来看,是『应用根节点的运动』,听起来

甲方、乙方、监理三者之间的关系及其在项目管理过程中的若干事项

1.甲方.乙方.监理三者之间的关系 甲方是工程项目的投资单位和受方单位,乙方是工程项目的承建单位和供方单位,监理是工程项目的监管单位和第三方单位.广义方面来讲,监理也属于乙方的范畴,是服务的提供者.从合同角度来讲,甲方与监理.甲方与乙方存在合同关系. 甲方与监理的合同关系:甲方根据合同委托和授权监理就工程项目的质量控制.进度控制.投资控制.信息管理.合同管理.安全管理.组织协调工作进行监理,监理在工程项目建设期间完成合同约定的上述工作内容. 甲方与乙方的合同关系:甲方根据合同委托和要求乙方就工程

面向对象中多个对象之间的关系

http://www.cnblogs.com/wing011203/archive/2012/06/23/2559223.html 当谈到面向对象的设计时,我们经常说面向对象是符合人们对现实世界的思维模式,即人们采用针对非程序设计领域存在的复杂问题的解决方式,来解决软件设计过程中各种错综复杂的关系.利用面向对象设计,特别是采用各种设计模式来解决问题时,会设计多个类,然后创建多个对象,这些对象,有些主要是数据模型,有些则是行为描述占主体.一个设计良好的类,应该是兼顾信息和行为,并且是高内聚.而不同