- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试了解 OpenGL 坐标系。但是,一些教程说默认坐标系是左手坐标系(请参阅 http://www.c-sharpcorner.com/UploadFile/jeradus/OpenGLBasics11172005014307AM/OpenGLBasics.aspx ),而其他教程则说默认坐标系是右手坐标系(请参阅 http://www.falloutsoftware.com/tutorials/gl/gl0.htm )。哪个是对的?我知道我们可以通过镜像将一个坐标转换为另一个坐标,但我想知道默认坐标。
最佳答案
这里有些困惑。
OpenGL 在对象空间和世界空间中是右手。
但是在窗口空间(又名屏幕空间)中,我们突然变成了左撇子。
这是怎么发生的?
我们从右手到左手的方式是 glOrtho
中的负 z 缩放条目。或glFrustum
投影矩阵。将 z 缩放 -1(同时保持 x 和 y 不变)具有改变坐标系的旋向性的效果。
对于 glFrustum,
far 和 near 应该是正数,far> near。假设远=1000,近=1。那么C= -( 1001 )/( 999 ) = -1.002 。
参见here了解更多详细信息和图表。
从正交角度来看,glOrtho 生成如下矩阵:
这里,左、右、底部和顶部只是the coordinates for left vertical, right vertical, bottom horizontal, top horizontal clipping planes (resp) .
但是,近和远平面的指定方式不同。 near 参数定义为
远方:
这里我们有一个典型的规范 View 体积
由于 z 乘数为 (-2/(远-近)),减号有效地将 z 缩放 -1。这意味着“z”在 View 变换期间转向左手,大多数人都不知道,因为他们只是在 OpenGL 中作为“右手”坐标系工作。
所以,如果你打电话
glOrthof(-1, 1, -1, 1, 10, -10) ; // near=10, FAR=-10,
那么近平面在您前面 10 个单位。你在哪里?为什么,在原点,x 轴在你的右边,y 轴在你的头顶,你的 Nose 朝下负 z 轴(这是默认的 "By default, the camera is situated at the origin, points down the negative z-axis, and has an up-vector of (0, 1, 0)." ) 。所以近平面位于 z=-10 处。远平面位于您身后10 个单位,位于 z=+10。
关于opengl - OpenGL坐标系是左手坐标系还是右手坐标系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4124041/
我想将“Game on Sep 27”放在左下角,“Lost 100 chips”对面。但我看不到将它定位在左下角。 这是我当前的 CSS: 有什么建议吗?非常感谢! 最佳答案 最简单的方法是将所有三
我是一名优秀的程序员,十分优秀!