游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5689|回复: 9

屏幕坐标向OpenGL坐标的转换

[复制链接]

4

主题

28

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2007-3-1 12:52:00 | 显示全部楼层 |阅读模式
我用传感器测出血压值点(x,y)(时间值,血压值);要在opengl中连接这些点的话,怎么转换坐标;
比如两个点(100,88),(101,88),怎么转换成opengl中的坐标??

4

主题

28

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2007-3-1 13:01:00 | 显示全部楼层

Re:屏幕坐标向OpenGL坐标的转换

望大家多提点意见啊~!~!~

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-3-1 13:57:00 | 显示全部楼层

Re:屏幕坐标向OpenGL坐标的转换

glBegin(GL_LINE_STRIP);
glVertex2f(x,y);
......
glEnd();

注意:投影方式最好选择
gluOrtho2d(0,800,0,600);

4

主题

28

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2007-3-1 16:38:00 | 显示全部楼层

Re:屏幕坐标向OpenGL坐标的转换


glBegin(GL_LINE_STRIP);
glVertex2f(x,y);
......
glEnd();
这个我会,关键是,glVertex2f(x,y);中的x,y值是多少啊,不会就是我所测的值(100,88)和(101,88)吧,

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-3-1 21:11:00 | 显示全部楼层

Re: Re:屏幕坐标向OpenGL坐标的转换

jackylee888: Re:屏幕坐标向OpenGL坐标的转换
关键是,glVertex2f(x,y);中的x,y值是多少啊,不会就是我所测的值(100,88)和(101,88)吧?

对,就是你所测得的那些数值。时间 X 从 0 开始,到结束。血压就是每时刻所对应的血压数据。[em15]

1

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2007-3-2 00:29:00 | 显示全部楼层

Re:屏幕坐标向OpenGL坐标的转换

这个问题很难回答,因为opengl里面有很多坐标系统,比如eye,model,view,world,perspective, viewport(monitor),不知道你要说的是那一个,我想你想知道的是最后一个,但是我想告诉你的是,Opengl就是把现实种(world或者model的坐标)转换成Montor坐标的一种工具.

4

主题

28

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2007-3-2 08:58:00 | 显示全部楼层

Re:屏幕坐标向OpenGL坐标的转换

{        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);        // 清除屏幕和深度缓存
        glLoadIdentity();
        glBegin(GL_LINE_STRIP);                        //画波形
                glColor3f(1.0f,0.0f,0.0f);
                glVertex2i(0,0);       
                glVertex2i(200,200);       
                glVertex2i(210,250);       
                glVertex2i(220,180);       
                glVertex2i(230,200);       
        glEnd();
}
那这样怎么没结果啊?

95

主题

1089

帖子

3301

积分

论坛元老

Rank: 8Rank: 8

积分
3301
QQ
发表于 2007-3-2 09:24:00 | 显示全部楼层

Re:屏幕坐标向OpenGL坐标的转换

有用的东西在网上是很难找到的,最多只能找到间接提示.
不过坐标嘛-不是什么机密,把我发明的公式教你,你会怎么感谢我呢.
屏幕宽高:int CX=600,CY=800;
鼠标坐标:int x=10,y=100;
下面是什么呢?自己猜了:^_^
ox=x*(2.0f/(float)cx)-1;
oy=1-y*(2.0f/(float)cy);

1

主题

102

帖子

108

积分

注册会员

Rank: 2

积分
108
QQ
发表于 2007-3-15 22:30:00 | 显示全部楼层

Re: 屏幕坐标向OpenGL坐标的转换

lz是不是这意思?把血压-时间图像绘制出来


我这样转换(注意绘制的时候用正交投影):
sf_2007315223021.png

4

主题

28

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2007-3-19 16:09:00 | 显示全部楼层

Re:屏幕坐标向OpenGL坐标的转换

Canbitwell
不怎么明白啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 17:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表