现在我是计算得到的
可以直接获得吗??void CPictureMosaicView::ResizeScene(int nWidth, int nHeight)
{
glViewport( 0, 0, nWidth, nHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); GLfloat fScale = (GLfloat)nHeight / (GLfloat)nWidth;
if( nWidth <= nHeight)
{
glOrtho( -5.0
, 5.0
, -5.0 * fScale
, 5.0 * fScale
, -5.0
, 5.0
);
m_fXScale = 10.0f / (float)nWidth;
m_fYScale = 10.0f*fScale / (float)nHeight;
}
else
{
glOrtho( -5.0 * fScale
, 5.0 * fScale
, -5.0
, 5.0
, -5.0
, 5.0
);
m_fXScale = 10.0f*fScale / (float)nWidth;
m_fYScale = 10.0f / (float)nHeight;
}
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
可以直接获得吗??void CPictureMosaicView::ResizeScene(int nWidth, int nHeight)
{
glViewport( 0, 0, nWidth, nHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); GLfloat fScale = (GLfloat)nHeight / (GLfloat)nWidth;
if( nWidth <= nHeight)
{
glOrtho( -5.0
, 5.0
, -5.0 * fScale
, 5.0 * fScale
, -5.0
, 5.0
);
m_fXScale = 10.0f / (float)nWidth;
m_fYScale = 10.0f*fScale / (float)nHeight;
}
else
{
glOrtho( -5.0 * fScale
, 5.0 * fScale
, -5.0
, 5.0
, -5.0
, 5.0
);
m_fXScale = 10.0f*fScale / (float)nWidth;
m_fYScale = 10.0f / (float)nHeight;
}
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
解决方案 »
- Edit如何通过movewindow只改变宽度
- win7下的VS2008输入时反向
- 多线程加CInternetSession类问题....
- 用API改写面的字符串代码,高手帮忙!
- 谁有《WINDOWS网络编程技术》的配套光盘,我需要其中的一个例子。
- 请教高手:Win9x下如何读取BIOS中主板的ID号?谢谢,分不够还可以再加。
- 本地文件搜索问题.请大家帮忙.
- TreeCtrl如何显示硬盘目录结构?现成的控件?某个函数?还是要我自己一个个insert?
- 如何将常用的自编函数打包成库函数,方面调用?
- 如何上网?(技术和非技术的讨论都非常欢迎)
- 怎么使一个formview里面的combobox的下拉列表向上伸展?
- 如何在windows下实现10400波特率的串口通信?
屏幕窗口大小是可以通过windows的api函数提取的
在平行投影下opengl的可视范围在你的Ortho函数当中已经指定了
他们之间作个比例计算就得到了
ortho的left和right参数之间的差值 / 窗口的宽度, 就是水平方向的比例
ortho的top和bottom参数之间的差值 / 窗口的高度, 就是垂直方向的比例
获取当前投影矩阵 projection matrix 和模型视图矩阵 model view matrix,作矩阵相乘,对角线上的就是比例。模型中的数据经过这个比例投影到一个 1 x 1 大小的矩形上,叫做单位化设备。这个单位化设备由映射到窗口的像素坐标架上。对于透视投影:
不存在通过矩阵计算的方法,你只能选择两个点,其所在直线平行于屏幕,然后投影到窗口,再计算比例。
必须自己计算而且象素是图像领域的东西,不是图形领域的内容,图形领域是矢量的
获取当前投影矩阵 projection matrix 和模型视图矩阵 model view matrix,作矩阵相乘,对角线上的就是比例。模型中的数据经过这个比例投影到一个 1 x 1 大小的矩形上,叫做单位化设备。这个单位化设备由映射到窗口的像素坐标架上。请问 相乘后得到矩阵
a ? ? ?
? b ? ?
? ? c ?
? ? ? da b c d 都是什么比例啊 ??
a,b,c 是相同的,如果你的比例变换是三个方向相同的比例。
谢谢alphapaopao(炮炮[www.alphasun.org]图形学) (