Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调整DirectX控件大小的标准方法_C#_Model_Directx_Slimdx - Fatal编程技术网

C# 调整DirectX控件大小的标准方法

C# 调整DirectX控件大小的标准方法,c#,model,directx,slimdx,C#,Model,Directx,Slimdx,我想知道调整DirectX控件大小的标准方法。一个模型显示在控件中,我希望它在调整大小后大小相同,只有更多的环境应该可见 我通过重置视口和交换链缓冲区成功地做到了这一点,但我也可以用另一种方式(移动摄影机)来实现,也许还有其他我没有想到的方法。我只是不知道哪种方式是最好的 更改视口大小只应在更改纵横比时显示“更多”的查看区域。例如,如果视口的宽度和高度加倍,纵横比将相同,因此将显示相同的图像,只是更大 相反,移动相机会改变观看量,例如,如果将相机向后移动,则会看到更多。然而,这可能不是你想要的。

我想知道调整DirectX控件大小的标准方法。一个模型显示在控件中,我希望它在调整大小后大小相同,只有更多的环境应该可见


我通过重置视口和交换链缓冲区成功地做到了这一点,但我也可以用另一种方式(移动摄影机)来实现,也许还有其他我没有想到的方法。我只是不知道哪种方式是最好的

更改视口大小只应在更改纵横比时显示“更多”的查看区域。例如,如果视口的宽度和高度加倍,纵横比将相同,因此将显示相同的图像,只是更大

相反,移动相机会改变观看量,例如,如果将相机向后移动,则会看到更多。然而,这可能不是你想要的。您正在将相机实际移动到另一个位置,而不是简单地更改视图属性


您可能正在寻找的是更改摄影机投影属性,这可能会使用“PerspectiveFovLH”来完成,其输入为:(“视野”、“纵横比”、“z近平面”、“z远平面”)。扩大视野(FOV)将允许您看到更多场景。更改纵横比将适当缩放该比例。通常,纵横比应该是屏幕宽度和高度之间的比率,如果您希望更大的屏幕显示更全面的内容,请按屏幕重新调整大小的大小缩放FOV。

请在向下投票时进行调整。我在谷歌上搜索得相当广泛,虽然我知道几种方法,但我不知道正确的方法。我的亲密联系人中没有一个曾经与DirectX合作过。非常感谢!我意识到我的视口不是我想做的事情,但我会选择相机的东西,我没有想到改变视野,虽然这是合乎逻辑的。再次感谢你!