三维观察与坐标变换
来源:互联网 发布:海鸥手表知乎 编辑:程序博客网 时间:2024/05/01 22:35
三维观察与坐标变换
三维景物视图的计算机生成过程类似于用相机对物体的拍照过程。我们需要对相机定位,并决定镜头的方向。按下快门时,相当于用镜头作为窗口对景物进行裁剪。
在计算机图形学中,我们可以在世界坐标系中通过建立观察坐标系来实现对三维物体的观察。(见下图1)
一,建立观察坐标系,将世界坐标系中三维物体的坐标转化为观察坐标。
二,在观察坐标系中建立观察平面,将观察坐标再投影到观察平面上。
Yw
Xw
Zw
Xv
Zv
Yv
图1 世界坐标系与观察坐标系
CY
X
Y
。point
CX
(0,0)
(1,0)
(0,1)
(-1,0)
(0,-1)
后截面
前截面
观察窗口
。
点
h
图 4 透视投影的有限观察空间
假设我们想要实现用鼠标左键点击画点:
在窗口中按下鼠标左键,发出WM_LButtonDown消息,void OnLButtonDown(UINT nFlags, CPoint point)函数处理该消息,其中point是相对于图2中坐标系,要想在屏幕中正确的显示,必须将该点坐标值转化成OpenGL下标准的设备坐标。
第一步,将GDI下坐标转化为观察坐标下坐标值。假设建立的是透视投影观察坐标系
::gluPerspective(90.0f, aspect_ratio, .01f, 100.0f);
X_ratio = point.x / CX;
Y_ratio = point.y / CY;
h代表该点在观察坐标系中z轴的大小,也即深度信息。
用h和视角可以求出该点所在截面的长和宽。
根据X_ratio和Y_ratio求出该点在截面中的坐标值
第二步,由OpenGL本身将截面中坐标投影到标准设备坐标。
- 三维观察与坐标变换
- 三维建模-观察变换流水线
- 三维坐标变换
- 三维坐标变换
- 计算机图形学三维变换、三维观察与消隐算法的实现
- 二维坐标变换三维坐标未解答
- 三维坐标系及坐标变换初步
- WebGL笔记_三维坐标变换(一)
- 基变换与坐标变换
- 基变换与坐标变换
- 三维观察
- SVG - 坐标与变换
- 积分与坐标变换
- 三维图形变换与投影
- 四元数与三维坐标相乘
- 摄像机、观察矩阵与取景变换
- HDU 4449 Building Design 三维凸包+空间坐标变换
- GDI 坐标系统与坐标变换(转)
- 涅磐.人间.灵(开篇)
- 网络负载平衡(转)
- yum centos
- VB asp函数大全
- 品牌硬盘编号识别
- 三维观察与坐标变换
- 我为什么喜欢成都比北京要多得多?
- JUST SOME TEST
- 必须掌握的八个DOS命令
- MaxtoCode 1.10 加密后的最新样例 (新的.NET源码保护伞)
- 贪心法设计一种更快的作业排序算法
- 推荐FLASH调试工具-AdminTool
- CSS Image Maps
- Sliding doors effect