opengl中的三维数学一(基础三维讲解)

本人从事c++编程已有三年时间,接触opengl 2年多,本职工作是从事三维编程,所以接触的三维数学比较多。想当年高中的时候学习立体几何,就是一味的闷头苦学,数学学的还算可以,但是不知道有何用处。工作之后接触到了三维编程和opengl之后才恍然大悟,原来这些都是高中学习过的立体几何知识,于是又重新温习了一遍。加上工作中接触的较多,有了一些积累。

很多时候去网上搜索算法,往往没有合适的例子,于是我便放弃了求人转为求己,这些算法也是一个个迎刃而解。积累了一些时间,基本上基础的三维数学算法我都有写过一遍,是用c++实现,后面的文章中我会一一讲解这些算法并且附上c++源码,希望不懂的人可以从中受益,懂的人可以发现不足加以指正,大家共同进步。


这篇文章主要是讲三维基础,因为发现工作中很多同事对三维知之甚少,一些基础知识也是很欠缺,所以在开始讲解函数之前先说一下三维的基础知识。对三维有一定基础的人可以略过。


三维基础:

笛卡尔坐标系:相信这个不用说大家都知道,就是三条互相垂直的直线相交于一个点的坐标系,相交到的这个点为原点,也就是(0,0,0)点,其他的三条直线就是三个轴线(x,y,z),三维空间中的任何一个点都可以用三个坐标来表示在笛卡尔坐标系中的位置,三个轴代表了三个方向。

直线:空间中任意两个不同的点连接成的线,直线是没有边界的,那两个点只是直线上面的两个普通点,直线没有端点,像宇宙的无穷远处延伸。

射线:有一个端点并且向一个方向发射的线叫射线,射线的一段是有头的,就是那个端点,另外一端和直线一样是无穷无尽的。

线段:可以理解成在直线上面截取的一段,有两个端点,也是我们平时用到的最多的三维元素。

向量:仅仅用来表示方向的东西,在数据上和点没有什么区别,但是代表的意义区别很大。向量没有位置,只是用来表示在空间中的方向,一般都会将向量转换为单位向量,也就是模为1的向量。

面:一个点和一个向量就可以构成一个面,这个向量叫做面的法向量,如果空间中的一个点和这个点形成的向量和法向量垂直,那么这个点就在这个面上。


三维无非就是点线面直接的关系组成的复杂关系,处理好基础的关系之后再复杂的关系也就变的简单了,三维的基础知识就是这些,下面我要开始讲解三维的一些函数已经他们的源代码和用法了



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值