首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

问个纹理坐标的有关问题.

2012-03-04 
问个纹理坐标的问题...C/C++ codeRECT rcSrc {100,90,179,175}CustomVertex objData[] {{float(x),flo

问个纹理坐标的问题...

C/C++ code
RECT rcSrc = {100,90,179,175};CustomVertex objData[] ={    {                         float(x),                          float(y), 0, 1, color,  float(rcSrc.left/width),    float(rcSrc.top/height) },    { float(rcSrc.right-rcSrc.left+x),                          float(y), 0, 1, color, float(rcSrc.right/width),    float(rcSrc.top/height) },    { float(rcSrc.right-rcSrc.left+x), float(rcSrc.bottom-rcSrc.top+y), 0, 1, color, float(rcSrc.right/width),    float(rcSrc.bottom/height) },    { float(rcSrc.right-rcSrc.left+x), float(rcSrc.bottom-rcSrc.top+y), 0, 1, color, float(rcSrc.right/width),    float(rcSrc.bottom/height) },    {                         float(x), float(rcSrc.bottom-rcSrc.top+y), 0, 1, color,  float(rcSrc.left/width),    float(rcSrc.bottom/height) },    {                         float(x),                          float(y), 0, 1, color,  float(rcSrc.left/width),    float(rcSrc.top/height) }};for (int i=0; i<6; i++){    objData[i].tu += float(0.5/width);    objData[i].tv += float(0.5/height);}// ...


就是这个rcSrc的取值问题:
在photoshop中,纹理坐标是100,90,179,175

然而在实际填到顶点的时候,要把这个坐标改为:100,90,180,176 才能显示完全,否则右边和下边会少一排像素,何故?
这个right和bottom就是宽高值,而不是从0开始计算的坐标?

[解决办法]
请楼上详细说下窗口边的问题, 我加载过一个图片,发现图片高度要比实际图片的高度矮,矮的像素数恰好等于
窗口标题栏的高度,对此一直耿耿于怀,问了几个人没一个明白的
[解决办法]
窗口大小包括了标题栏在内的,所以实际显示画面的部分要小一些
[解决办法]
一个窗口的尺寸包括了 标题栏 窗框 的尺寸.
窗框的尺寸一般不会太大, 一般的来说,计算客户区大小会减去这些非实际内容的尺寸.

比如我们创建窗口的时候通常会这样:

C/C++ code
   SetRect( &rc, 0, 0, IC_WINDOWS_WIDTH, IC_WINDOWS_HEIGHT );   AdjustWindowRect( &rc,WS_OVERLAPPEDWINDOW&(~WS_MAXIMIZEBOX)&(~WS_SIZEBOX),FALSE);   hWnd = CreateWindow(szWindowClass, szTitle,  WS_OVERLAPPEDWINDOW&(~WS_MAXIMIZEBOX)&(~WS_SIZEBOX),0,0,(rc.right - rc.left),(rc.bottom-rc.top), NULL, NULL, hInstance, NULL);
[解决办法]
QQ已经加了 , 我的运行结果就如上图

热点排行