图形算法
swety_gxy
一个IT行业的代码菜鸟,平时喜欢关注媒体类的事物,在此记录自己的修炼历程。
展开
-
根据给定的曲线实现管状的网格造型
最近在倒腾项目的一些小算法,这是其中擦边横生出来的小算法,思想很简单,实现的启迪来自于圆形的绘制,实现环境为OSG库,采用OSG中的DrawElements的形式组织顶点。(1)核心算法为:由曲线上的离散点作为V向,每一个离散点旋转一周作为U向(相当于是生成U方向上的顶点)。如下:C(v)代表曲线上的点,Rx代表x轴向的半径,Ry代表y轴向的半径。P(u,v)=C(v) + Rx*原创 2016-11-18 20:05:30 · 688 阅读 · 2 评论 -
圆周的绘制
圆周的绘制有很多的方法,这只是其中的一种,根据图形学中圆周生成的算法演变而来,生成圆周的顶点,实现环境为OSG。算法的公式为:P(X(u),Z(U))=P(D+A*(cos(u)),A*sin(u))A:圆周半径D:谝置距离实现的代码为://生成圆的顶点osg::ref_ptr CirclePoints(osg::Vec3 Opoint, osg::Vec2 Min原创 2016-11-19 23:01:57 · 496 阅读 · 0 评论 -
Catmull_Rom算法的实现
Catmull_Rom算法的具体原理在网络上都有,感兴趣的可以自己查找,此处只是它的代码实现,实现环境为OSG:给定一堆离散点,将该离散点进行插值,绘制的曲线经过每一个离散点。实现的代码://生成Catmull_Rom Spline算法顶点osg::Vec3 Catmull_Rom_SplinePoint_new(float u, osg::ref_ptr subconct原创 2016-11-19 23:10:19 · 8760 阅读 · 0 评论 -
OSG环境实现Coons曲面的拼接绘制
Coons曲面是工业设计上常用的一种曲面,也是学习计算机图形学要掌握的一种曲面构造方法,本文简单介绍了其原理,并给出实现的一些代码。原创 2016-12-02 19:51:00 · 2754 阅读 · 4 评论 -
Nurbs样条线的原理及实现例码
最近做项目要用到到nurbs样条线,于是在网上找了一些Nurbs样条线的资料进行了研究,参照例子用自己的方法实现了Nurbs样条线,使用了几组例子进行测试。语言环境是OSG库。(1)nurbs样条线的原理简介:公式:其中是控制顶点(构成控制多边形),为权因子,为定义于非均匀控制矢量上的次B-样条基函数,如下:若未经说明,一般假定,>0;令:上式可原创 2017-01-20 14:52:18 · 18187 阅读 · 7 评论 -
空间多边形顺逆时针的判断
判断多边形的顺逆时针的问题原创 2017-04-26 13:11:00 · 6013 阅读 · 7 评论 -
三维空间中的几何变换-平移旋转缩放
深入学习了下图形几何变换,主要是绕任意轴旋转部分(其他的已有一定基础),现记录学习笔记。原创 2017-06-12 13:16:02 · 43469 阅读 · 1 评论 -
判断平面多边形的凹凸性
对于平面多边形的三角化处理也是计算机图形学里面的一个领域,最近由于项目的需要,需要对平面多边形进行剖分,特此对其作了些研究。在对平面多边形进行处理的时候,很多时候需要知道多边形的凹凸性,本文介绍两种方法来进行平面多边形凹凸性的判定,文章后面会给出示例代码。1、使用角度和判断凹凸性我们知道,任意n个顶点的凸多边形可以分解成(n-2)个三角形,一个三角形的内角和是180°,所有三角形的内角原创 2017-04-14 23:51:15 · 21667 阅读 · 7 评论