任意视点三维坐标转换成二维坐标的算法公式

huguangjie_2011 2011-07-08 11:56:54
任意视点三维坐标转换成二维坐标的算法公式,不要调用函数,最好能说下原理,请各位大虾指教!!!!
...全文
786 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-07-08
  • 打赏
  • 举报
回复
理解计算机3D图形学中的坐标系变换
http://blog.csdn.net/pizi0475/article/details/6365941
huguangjie_2011 2011-07-08
  • 打赏
  • 举报
回复
不好意思 是dizuo
huguangjie_2011 2011-07-08
  • 打赏
  • 举报
回复
上网找的 感觉不对 !!!

不知diduo大虾 ,可否给个转换代码 急用!!!!!!!!
ryfdizuo 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huguangjie_2011 的回复:]
struct point2 f3dto2d(struct point3 s)
{
struct point2 d; //二维坐标
struct point3 v; //视点的三维坐标
v.x=viewx;v.y=viewy;v.z=viewz;
d.x=v.x+((float)(s.x-v.x)/(v.z-s.z))*v.z; //三维转换为二维的x坐标
d.y=v.y+……
[/Quote]
你这个公式原理何在?
3维到二维是一个投影的过程,没这么简单啊。
huguangjie_2011 2011-07-08
  • 打赏
  • 举报
回复
struct point2 f3dto2d(struct point3 s)
{
struct point2 d; //二维坐标
struct point3 v; //视点的三维坐标
v.x=viewx;v.y=viewy;v.z=viewz;
d.x=v.x+((float)(s.x-v.x)/(v.z-s.z))*v.z; //三维转换为二维的x坐标
d.y=v.y+((float)(s.y-v.y)/(v.z-s.z))*v.z; //三维转换为二维的y坐标
return(d);
}

请问这个三维转换二维的公式 可以用吗?
matlab函数网上搜集并精心整理,添加了目录,便于查阅。共23页。 文档内容举例: 函数名 功能描述 addpath 增加一条搜索路径 目 录 1 常用命令 1.1 管理用命令 1.2管理变量与工作空间用命令 1.3文件与操作系统处理命令 1.4窗口控制命令 1.5启动与退出命令 2 运算符号与特殊字符 2.1运算符号与特殊字符 2.2逻辑函数 3 语言结构与调试 3.1编程语言 3.2控制流程 3.3交互输入 3.4面向对象编程 3.5调试 4 基本矩阵与矩阵处理 4.1基本矩阵 4.2特殊向量与常量 4.3时间与日期 4.4矩阵处理 5 特殊矩阵 6 数学函数 6.1三角函数 6.2指数函数 6.3复数函数 6.4数值处理 6.5其他特殊数学函数 7 坐标转换 8 矩阵函数 8.1矩阵分析 8.2线性方程 8.3特征值与奇异值 8.4矩阵函数 9 数据分析与Fourier变换函数 9.1基本运算 9.2微分计算 9.3滤波与卷积 9.4方差处理 9.5Fourier变换 10 多项式处理函数 10.1多项式处理 10.2数据插值 11 非线性数值方法 12 稀疏矩阵函数 12.1基本稀疏矩阵 12.2稀疏矩阵转换 12.3处理非零元素 12.4稀疏矩阵可视化 12.5排序算法 12.6范数、条件数 12.7特征值与奇异值 12.8其他 14 13 图形绘制 13.1基本二维图形 13.2基本三维图形 13.3三维颜色控制 13.4三维光照模型 13.5标准调色板设置 13.6三维视点控制 13.7坐标轴控制 13.8图形注解 13.9拷贝与打印 14 特殊图形 14.1特殊二维图形 14.2等高线及其他二维图形 14.3特殊三维图形 14.4图象显示与文件I/O 14.5动画处理 14.6实体模型 15 图形处理 15.1图形窗口生与控制 15.2坐标轴建立与控制 15.3处理图形对象 15.4图形 18 16 GUI(图形用户接口) 16.1GUI函数 16.2GUI设计工具 16.3对话框 16.4菜单 16.5组按钮 16.6自定义窗口属性 16.7其他应用 17 声音处理 18 字符串处理函数 18.1字符串处理 18.2字符串与数值转换 18.3进制转换 19 文件输入输出函数 19.1基本文件输入输出 19.2特殊文件输入输出 20 位操作 21 复杂数据类型 21.1数据类型 21.2结构操作 21.3多维数组操作 21.4单元数组操作 21.5面向对象函数 22 日期与时间 23 动态数据交换
OpenGL图形学演示程序 在计算机发展初期,人们就开始从事计算机图形的开发,但直到20世纪80年代末90年代初,三维图形才开始迅速发展。于是各种三维图形工具软件包相继推出,如GL,RenderMan等,但没有一种软件包能够在三维图形建模能力和编程方便程度上与OpenGL相比拟。 OpenGL(Open Graphics Library,开放图形库),是一个三维的计算机图形和模型库,它源于SGI公司为其图形工作站开发的IRIS GL,在跨平台移植过程中发展为OpenGL。SGI公司在1992年6月发布1.0版,后为工业标准。目前,OpenGL标准由1992年立的独立财团OpenGL Architecture Review Board(ARB)以投票方式产生,并制规范文档公布,各软硬件厂商据此开发自己系统上的实现。目前最新版规范是1999年5月通过的1.2.1。 OpenGL作为一个性能优越的图形应用程序设计界面(API),它独立于硬件和窗口系统,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。 OpenGL在军事、广播电视、CAD/CAM/CAE、娱乐、艺术造型、医疗影像、虚拟世界等领域都有着广泛的应用。它具有以下功能。 1. 模型绘制 OpenGL能够绘制点、线和多边形。应用这些基本的形体,可以构造出几乎所有的三维模型。OpenGL通常用模型的多边形的顶点来描述三维模型。 2. 模型观察 在建立了三维景物模型后,就需要用OpenGL描述如何观察所建立的三维模型。观察三维模型是通过一系列的坐标变换进行的。模型的坐标变换在使观察者能够在视点位置观察与视点相适应的三维模型景观。在整个三维模型的观察过程中,投影变换的类型决定观察三维模型的观察方式,不同的投影变换得到的三维模型的景象也是不同的。最后的视窗变换则对模型的景象进行裁剪缩放,即决定整个三维模型在屏幕上的图象。 3. 颜色模式的指定 OpenGL应用了一些专门的函数来指定三维模型的颜色。程序开发者可以选择二个颜色模式,即RGBA模式和颜色表模式。在RGBA模式中,颜色直接由RGB值来指定;在颜色表模式中,颜色值则由颜色表中的一个颜色索引值来指定。开发者还可以选择平面着色和光滑着色二种着色方式对整个三维景观进行着色。 4. 光照应用 用OpenGL绘制的三维模型必须加上光照才能更加与客观物体相似。OpenGL提供了管理四种光(辐射光、环境光、镜面光和漫射光)的方法,另外还可以指定模型表面的反射特性。 5. 图象效果增强 OpenGL提供了一系列的增强三维景观的图象效果的函数,这些函数通过反走样、混合和雾化来增强图象的效果。反走样用于改善图象中线段图形的锯齿而更平滑,混合用于处理模型的半透明效果,雾使得影像从视点到远处逐渐褪色,更接近于真实。 6. 位图和图象处理 OpenGL还提供了专门对位图和图象进行操作的函数。 7. 纹理映射 三维景物因缺少景物的具体细节而显得不够真实,为了更加逼真地表现三维景物,OpenGL提供了纹理映射的功能。OpenGL提供的一系列纹理映射函数使得开发者可以十分方便地把真实图象贴到景物的多边形上,从而可以在视窗内绘制逼真的三维景观。 8. 实时动画 为了获得平滑的动画效果,需要先在内存中生下一幅图象,然后把已经生的图象从内存拷贝到屏幕上,这就是OpenGL的双缓存技术(double buffer)。OpenGL提供了双缓存技术的一系列函数。 9. 交互技术 目前有许多图形应用需要人机交互,OpenGL提供了方便的三维图形人机交互接口,用户可以选择修改三维景观中的物体。
中国游戏开发者第一章 OpenGL与三维图形世界.1 OpenGL使人们进入三维图形世界1.2 OpenGL提供直观的三维图形开发环境1.3 OpenGL称为目前三维图形开发标准第二章 OpenGL概念建立2.1 OpenGL基本理解2.2 OpenGL工作流程2.3 OpenGL图形操作步骤第三章 Windows NT环境下的OpenGL3.1 Windows NT下的OpenGL函数3.2 OpenGL基本功能3.3 Windows NT下OpenGL结构第四章 OpenGL基本程序结构第五章 OpenGL数据类型和函数名第六章 OpenGL辅助库的基本使用6.1 辅助库函数分类    6.2 辅助库应用示例  第七章 OpenGL建模    7.1 描述图元     7.1.1 齐次坐标     7.1.2 点     7.1.3 线     7.1.4 多边形    7.2 绘制图元     7.2.1 定义顶点     7.2.2 构造几何图元  第八章 OpenGL变换    8.1 从三维空间到二维平面     8.1.1 相机模拟     8.1.2 三维图形显示流程     8.1.3 基本变换简单分析    8.2 几何变换     8.2.1 两个矩阵函数解释     8.2.2 平移     8.2.3 旋转     8.2.4 缩放和反射     8.2.5 几何变换举例    8.3 投影变换     8.3.1 正射投影     8.3.2 透视投影    8.4 裁剪变换    8.5 视口变换    8.6 堆栈操作  第九章 OpenGL颜色    9.1 计算机颜色     9.1.1 颜色生原理     9.1.2 RGB色立体    9.2 颜色模式     9.2.1 RGBA模式     9.2.2 颜色表模式     9.2.3 两种模式应用场合    9.3 颜色应用举例  第十章 OpenGL光照    10.1 真实感图形基本概念    10.2 光照模型     10.2.1 简单光照模型     10.2.2 OpenGL光组     10.2.3 创建光源     10.2.4 启动光照    10.3 明暗处理    10.4 材质     10.4.1 材质颜色     10.4.2 材质定义     10.4.3 材质RGB值和光源RGB值的关系     10.4.4 材质改变  第十一章 OpenGL位图和图像    11.1 位图     11.1.1 位图和字符     11.1.2 当前光栅位置     11.1.3 位图显示    11.2 图像     11.2.1 象素读写     11.2.2 象素拷贝     11.2.3 图像缩放     11.2.4 图像例程  第十二章 OpenGL纹理    12.1 基本步骤    12.2 纹理定义    12.3 纹理控制     12.3.1 滤波     12.3.2 重复与约简    12.4 映射方式    12.5 纹理坐标      12.5.1 坐标定义      12.5.2 坐标自动产生  第十三章 OpenGL复杂物体建模    13.1 图元扩展     13.1.1 点和线     13.1.2 多边形    13.2 法向计算     13.2.1 法向基本计算方法     13.2.2 法向定义    13.3 曲线生     13.3.1 曲线绘制举例     13.3.2 曲线定义和启动     13.3.3 曲线坐标计算     13.3.4 定义均匀间隔曲线坐标值    13.4 曲面构造     13.4.1 曲面定义和坐标计算     13.4.2 定义均匀间隔的曲面坐标值     13.4.3 纹理曲面     13.4.4 NURBS曲面  第十四章 OpenGL特殊光处理    14.1 光照模型     14.1.1 全局环境光     14.1.2 近视点与无穷远视点     14.1.3 双面光照    14.2 光源位置与衰减    14.3 聚光与多光源     14.3.1 聚光     14.3.2 多光源与例程    14.4 光源位置与方向的控制    14.5 辐射光  第十五章 OpenGL效果处理    15.1 融合     15.1.1 Alpha值与融合     15.1.2 融合因子     15.1.3 融合实例    15.2 反走样     15.2.1 行为控制函数     15.2.2 点和线的反走样     15.2.3 多边形的反走样    15.3 雾     15.3.1 雾的概论和例程     15.3.2 雾化步骤  第十六章 OpenGL显示列表    16.1 显示列表概论     16.1.1 显示列表的优势     16.1.2 显示列表的适用场合    16.2 创建和执行显示列表     16.2.1 创建显示列表     16.2.2 执行显示列表    16.3 管理显示列表     16.4 多级显示列表  第十七章 OpenGL帧缓存和动画    17.1 帧缓存     17.1.1 帧缓存组     17.1.2 缓存清除    17.2 动画
第一章 MATLAB6.5 基础 1.1 MATLAB 语言介绍 1.1.1 MATLAB 产品系列与应用 1.1.2 MATLAB6.5 的新特点 1.2 MATLAB 语言基础 1.2.1 认识 MATLAB6.5 环境 1.2.2 MATLAB6.5 变量和表达式 1.2.3 数组的产生 1.2.4 数组的操作 1.2.5 常用的数学函数 1.2.6 数组的运算 1.2.7 数组的扩展 1.2.8 数组的转换 1.2.9 MATLAB 控制语句 1.2.10 其它控制语句 1.2.11 文件操作 1.2.12 M 文件 第二章 MATLAB 图形绘制基础 2.1 二维绘图 2.1.1 基本绘图函数 2.1.2 图形窗口的修饰 2.2 三维绘图 2.2.1 plot3 函数 2.2.2 三维网格图和曲面图 第三章 MATLAB 图形对象 3.1 图形对象 3.1.1 Root 对象 3.1.2 Figure 对象 3.1.3 Uicontrol 对象 3.1.4 Uimenu 对象 3.1.5 Axes 对象 3.1.6 Image 对象 3.1.7 Line 对象 3.1.8 Patch 对象 3.1.9 Rectangle 对象 3.1.10 Surface 对象 3.1.11 Light 对象 3.1.12 Text 对象 第四章 MATLAB 图形对象操作 4.1 图形对象的属性 4.2 图形对象句柄的获取 4.2.1 对象创建时获取 4.2.2 层次关系来获取 4.2.3 当前对象的获取 4.2.4 根据对象属性值的获取 4.3 图形对象句柄的删除与判断 4.3.1 句柄的删除 4.3.2 句柄的判断 4.4 图形对象属性值的获取与设置 4.4.1 图形对象属性值的设置 4.4.2 图形对象属性值的获取 4.4.3 用户缺省值的操作 4.5 图形对象的其它操作 4.5.1 figflag 函数 4.5.2 findfigs 函数 4.5.3 copyobj 函数 4.5.4 capture 函数 4.5.5 refresh 函数 4.5.6 saveas 函数 4.5.7 hgload 函数和 hgsave 函数 4.5.8 newplot 函数 第五章 GUI 设计 5.1 认识 GUI 环境 5.1.1 版面设计工具 5.1.2 属性编辑器 5.1.3 菜单编辑器 5.1.4 调整工具 5.1.5 对象浏览器 5.1.6 TAB 次序编辑器 5.1.7 GUIDE 环境设置 5.2 GUI 设计 5.2.1 GUI 设计原则 5.2.2 GUI 设计步骤 5.3 GUI 实现 5.3.1 组件的布局 5.3.2 属性编辑 5.3.3 回调函数 5.4 GUI 实例 5.4.1 组件布局 5.4.2 属性值的修改 5.4.3 回调函数 5.4.4 调试程序 5.4.5 执行的效果 5.4.6 结束语 第六章 MATLAB 特殊图形的绘制 6.1 区域图 6.2 填充图 6.2.1 二维填充图 6.2.2 三维填充图 6.3 条形图 6.3.1 二维条形图 6.3.1 三维条形图 6.4 直方图 6.4.1 笛卡儿坐标系下的直方图 6.4.2 极坐标系下的直方图 6.5 圆体图 6.5.1 圆柱体的绘制 6.5.2 球体的绘制 6.5.3 椭圆体的绘制 6.6 饼图 6.6.1 二维饼图 6.6.2 三维饼图 6.7 排列图 6.8 离散图形的绘制 6.8.1 二维柄状图 6.8.2 三维柄状图 6.8.3 阶梯图 6.9 散点图 6.9.1 二维散点图 6.9.2 三维散点图 6.9.3 散点图矩阵 6.10 轮廓图 6.10.1 二维轮廓图 6.10.2 三维轮廓图 6.11 向量图 6.11.1 罗盘图 6.11.2 羽状图 6.11.3 箭头图 6.11.4 法线图 第七章 MATLAB 高级绘图功能 7.1 彗星图 7.1.1 二维彗星轨迹图 7.1.2 三维彗星轨迹图 7.2 帧动画 7.3 程序动画 7.4 色图变幻 7.5 Voronoi 图和三角剖分 7.6 四面体 7.7 彩带图 7.7.1 彩带图 7.7.2 三维流彩带图 7.8 伪彩图 7.9 切片图 7.9.1 切片图 7.9.2 切片轮廓线图 7.10 网格图和曲面图特效 7.10.1 显示轮廓线 7.10.2 显示围裙 7.10.3 瀑布效果 7.10.4 带光照模式的阴影图 7.11 函数绘图 7.12 三维图形控制 7.12.1 视点 7.12.2 图形旋转 7.12.3 灯光效果 7.12.4 色彩控制 第八章 数字图像原理 8.1 图像 8.2 数字图像处理学 8.2.1 数字图像处理方法 8.2.2 数字图像处理的主要内容 8.3 图像文件格式 8.4 图像类型 8.4.1 索引图像 8.4.2 灰度图像 8.4.3 RGB 图像 8.4.4 二值图像 8.4.5 图像序列 8.4.6 图形类型判断 8.5 图像类型转换 8.5.1 dither 函数 8.5.2 gray2ind 函数 8.5.3 grayslice 函数 8.5.4 im2bw 函数 8.5.5 ind2gray 函数 8.5.6 ind2rgb 函数 8.5.7 mat2gray 函数 8.5.8 rgb2gray 函数 8.5.9 rgb2ind 函数 8.6 MATLAB 中的 8 位和 16 位图像 8.6.1 8 位和 16 位索引图像 8.6.2 8 位和 16 位灰度图像 8.6.3 8 位和 16 位 RGB 图像 8.7 图像文件的操作 8.7.1 查询图像文件的信息 8.7.2 图像文件的读取 8.7.3 图像文件的存储 8.7.4 图像数据类型的转换 8.7.5 图像文件格式的转换 第九章 MATLAB 图像显示与色彩 9.1 图像显示 9.1.1 imshow 函数 9.1.2 显示索引图像 9.1.3 显示灰度图像 9.1.4 显示二值图像 9.1.5 显示真彩图像 9.1.6 直接从磁盘文件中显示图像 9.2 特殊图像显示技术 9.2.1 显示颜色条 9.2.2 显示多帧图像序列 9.2.3 显示多幅图像序列 9.3 纹理映射 9.4 图像颜色 9.4.1 图像的退色处理 9.4.2 MATLAB 的颜色模型 9.4.3 MATLAB 颜色模型的转换 9.4.4 色彩处理 第十章 MATLAB 图像正交变换 10.1 正交变换通用算子 10.2 傅立叶变换 10.2.1 傅立叶变换的原理 10.2.2 傅立叶性质 10.2.3 二维离散傅立叶变换( 2DDFT ) 10.2.4 快速傅立叶变换( FFT ) 10.2.5 傅立叶变换的研究与应用 10.3 离散余弦变换 10.3.1 DCT 变换矩阵 10.3.2 dct2 函数和 dctmtx 函数 10.4 Walsh- Hadamard 变换 10.5 Radon 变换 10.6 小波变换 10.6.1 小波的定义 10.6.2 小波变换函数 10.6.3 小波变换实例 10.6.4 小波除噪与压缩函数 第十一章 滤波器的设计 11.1 线性滤波 11.1.1 卷积与相关 11.1.2 imfilter 滤波函数 11.1.3 预定义滤波 11.2 FIR 滤波器的设计 11.2.1 FIR 滤波器基础 11.2.2 计算二维频率响应 11.2.3 计算期望频率响应矩阵 11.2.4 频率变换法 11.2.5 频率采样法 11.2.6 窗函数法 第十二章 MATLAB 图像运算 12.1 图像点的运算 12.1.1 线性点运算 12.1.2 非线性点运算 12.2 图像的算术运算 12.2.1 加法运算 12.2.2 减 法运算 12.2.3 乘法 运算 12.2.4 除法 运算 12.2.5 其它运算 12.3 图像的位逻辑运算 12.4 图像的几何运算 12.4.1 图像插值 12.4.2 图像缩放 12.4.3 图像旋转 12.4.4 图像剪切 12.5 空间变换 12.5.1 仿射变换( affine transformation ) 12.5.2 透视变换 (Perspective Transformation) 12.5.3 空间变换的 MATLAB 函数 12.5.4 空间变换实例 12.6 图像融合 12.7 邻域与块操作 12.7.1 邻域操作 12.7.2 图像块操作 12.8 区域处理 12.8.1 区域选择 12.8.2 区域滤波 12.8.3 区域填充 第十三章 MATLAB 图像增强 13.1 灰度变换增强 13.1.1 像素值及其统计特性 13.1.2 直方图灰度变换 13.1.3 直方图均衡化 13.1.4 直方图规定化 13.2 空域滤波增强 13.2.1 平滑滤波器 13.2.2 锐化滤波器 13.3 频域增强 13.3.1 低通滤波器 13.3.2 高通滤波器 13.3.3 同态滤波器 13.3.4 频域增强 MATLAB 实例 13.4 色彩增强 13.4.1 真彩色增强 13.4.2 伪彩色增强 13.5 小波增强 第十四章 图像复原 14.1 退化模型 14.1.1 连续退化模型 14.1.2 离散退化模型 14.2 复原的代数方法 14.2.1 代数复原原理 14.2.2 逆滤波复原 14.2.3 最小二乘方滤波 14.3 MATLAB 实现图像复原 14.3.1 维纳滤波复原 14.3.2 规则化滤波复原 14.3.3 Lucy-Richardson 复原 14.3.4 盲去卷积复原 14.3.5 图像复原的其它 MATLAB 函数 第十五章 图像分析 15.1 边缘检测 15.1.1 微分算子 15.1.2 Log算子 15.1.3 Canny 算子 15.2 四叉树分解 15.2.1 四叉树分解 15.2.2 四叉树 MATLAB 函数 第十六章 数学形态学操作 16.1 数学形态学的基本运算 16.1.1 结构元素矩阵 16.1.2 膨胀运算 16.1.3 腐蚀运算 16.1.4 膨胀与腐蚀的对偶关系 16.1.5 开运算和闭运算 16.1.6 击中与击不中 16.1.7 二值图像形态学处理函数 16.1.8 其它膨胀和腐蚀的基本函数 16.2 形态学的基本应用 16.2.1 边缘提取 16.2.2 连通对象标注 16.2.3 对象选择 16.2.4 二值图像面积提取 16.2.5 二值图像的欧拉数 16.2.6 移除对象 16.2.7 区域填充 16.3 查找表操作 16.4 灰度形态学 16.4.1 灰度形态学基本运算实例 16.4.2 其它函数 第十七 章 图像编码与压缩 17.1 图像编码基础 17.1.1 图像编码压缩的必要性 17.1.2 图像编码压缩的可能性 17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术编码 17.2.4 词典编码 17.3 有损压缩编码 17.3.1 预测编码 17.3.2 正交变换编码 17.3.3 MATLAB 实现余弦变换压缩 17.3.4 MATLAB 实现小波变换压缩 附录 A 对象属性 附录 B 图像工具箱函数

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧