游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3190|回复: 10

我的模型为什么被拉宽?

[复制链接]

48

主题

142

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2007-6-11 15:22:00 | 显示全部楼层 |阅读模式
比如窗口最大化时,拖动旋转时,模型在X轴上变宽了.
为啥?

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-6-11 16:38:00 | 显示全部楼层

Re:我的模型为什么被拉宽?

因为你的是宽屏。

但程序里的投影 Perspective(视野,宽高比,近,远); 里的“宽高比”却仍然是“4:3”。

也有可能程序里的投影是“1:1”窗口,最大化后变成“4:3”。

很常见的问题。

48

主题

142

帖子

142

积分

注册会员

Rank: 2

积分
142
 楼主| 发表于 2007-6-11 17:36:00 | 显示全部楼层

Re:我的模型为什么被拉宽?

谢谢.
有什么解决的办法吗?

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-6-11 18:06:00 | 显示全部楼层

Re:我的模型为什么被拉宽?

在消息循环冲做处理喽。

如果消息是“改变窗口”,则先计算窗口的宽高比。
然后,重新设置投影 Perspective(30,宽高比,1,1000);

48

主题

142

帖子

142

积分

注册会员

Rank: 2

积分
142
 楼主| 发表于 2007-6-12 22:22:00 | 显示全部楼层

Re:我的模型为什么被拉宽?

非常感谢骑士中尉.
但是我不知道怎么做,应该不是调用IsZoomed,GetWindowRect之类的函数吧?
这方面的知识在哪里找?
看来要补一补这方面的课罗.

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-6-13 00:03:00 | 显示全部楼层

Re:我的模型为什么被拉宽?

我一般是这么搞的:

double        ration=(double)GetSystemMetrics(SM_CXSCREEN)/GetSystemMetrics(SM_CYSCREEN);
其中,
GetSystemMetrics(SM_CXSCREEN) 是窗口的“宽”,它是 int值。
GetSystemMetrics(SM_CYSCREEN) 是窗口的“高”,也是 int值。
可是宽高比很少是整数 int ,宽高比一般是 1.333333......
所以需要 (double)GetSystemMetrics(SM_CXSCREEN) 。

编程序,碰到问题应该去哪里找?
我一般是去 baidu 里搜索的。如果有具体的函数名,那肯定能找到!
就看你会不会利用 BAIDU 了。关键是“关键词”怎么添写。呵呵

祝你好运!

48

主题

142

帖子

142

积分

注册会员

Rank: 2

积分
142
 楼主| 发表于 2007-6-13 19:39:00 | 显示全部楼层

Re:我的模型为什么被拉宽?

谢谢.
             case WS_MAXIMIZE:
                ration=(float)GetSystemMetrics(SM_CXSCREEN)/GetSystemMetrics(SM_CYSCREEN);
                D3DXMatrixPerspectiveFovLH( &matProj,D3DX_PI/4,ration , 1.0f, 1000.0f);
                return TRUE;
这样好象仍然不行,模型还是被拉宽.

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-6-13 21:51:00 | 显示全部楼层

Re: Re:我的模型为什么被拉宽?

葡萄糖: Re:我的模型为什么被拉宽?
这样好象仍然不行,模型还是被拉宽.

你的显示器到底是不是宽屏
你用的窗口分辨率是多少?800*600?
你用的是最大化?还是全屏?

48

主题

142

帖子

142

积分

注册会员

Rank: 2

积分
142
 楼主| 发表于 2007-6-13 22:12:00 | 显示全部楼层

Re:我的模型为什么被拉宽?

分辨率是1024*768
用的是最大化,不是全屏.
不知道显示器是否宽屏.

48

主题

142

帖子

142

积分

注册会员

Rank: 2

积分
142
 楼主| 发表于 2007-6-15 10:14:00 | 显示全部楼层

Re:我的模型为什么被拉宽?

用鼠标拖动窗框,使之变宽或变窄,窗口中的物体当然变形.我现在想通了.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 03:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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