计算机图形学 (一) 输出图元 - 基本绘制方式

这一部分出自《计算机图形学》绿绿的一本、链接如下
链接:http://pan.baidu.com/s/1bpGVHKV 密码:aamh
想着趁假期还有几天把CG的相关知识点过一下(学的时候感觉蛮有兴趣的就是上学期真的boom 所以也没太学好) 有些光看书看不懂的会找资料给补充
然后,OpenGL的代码每一部分都整一下另外放、基本都按章节来 
甚至幻想着能结合Maya-(= =)醒醒

概念

坐标

屏幕坐标,基本是从左到右为x,从上到下为y。

三维坐标中点的表示

Point3D {
                double x;
                            double y; 
                            double z;
                           }

长方体表示
这里长方体最简洁的表示应该还是(三个点)
但不单单要考虑存储大小还要考虑具体应用嘛(老师说的)
所以具体存储方式是下面的

cuboid {
                       LCS3D    local;
                       double x;
                       double y;
                       double z;
                              }

画线算法

http://blog.csdn.net/clever101/article/details/6076841

DDA算法

数字微分分析仪,线段扫描转换算法

将增量分离成整数和小数部分

Bresenham算法

k<1的时候,下一个位置在当前位置的右侧或右上侧、
蛮神奇的一个算法。后面的一些表现方式基本也在这个基础上。

并行画线算法

1\ 把线段分为n个子段,同时进行

2\ 给每个处理器分配一组像素,计算到像素到线距离d,小于线段粗细则绘制

圆生成算法

基本思路

1\ x为步长
计算量过大(开根号)、不等间距

2\ 转换到极坐标,角度为步长
三角函数计算困难

Bresenham算法

不需要平方根运算、需要平方运算

中点画圆算法

类似Bresenham算法,利用下一个点在 圆内\圆外 判断

椭圆生成算法

类似于圆的、就是圆可以只计算1/8椭圆要计算1/4,然后要在斜率绝对值为1处前后分为两个阶段

几何要素

中心位置编址 - 表示线段的时候长度会出问题

封闭图形 - 内部点


填充区图元

凹多边形 - 凸多边形

凹多边形填充算法比较困难

凹多边形的判断

1\ 邻边叉乘
2\ 顶点在延长线的两侧

分割方法

1\ 向量法
叉积为负数的向量方形

2\ 旋转法
逐一将顶点移动到原点,顺时针旋转多边形知道下一个顶点到x轴上,如果再下一个顶点在x轴下方,分割,并对俩多边形都进行测试。

凸多边形 - 三角形

三个连续顶点

内外测试

1\ 奇偶规则 射线与各边交点数目(其实也就是环绕数是奇数还是偶数)
2\ 非零环绕 逆时针方向环绕某一特定点的次数 - 环绕数
这两种方式得出的内外部区域可能不同

多边形表

1\ 几何数据表:顶点表、边表和面片表
这个应该可以根据信息来做具体的调整没那么呆板
还有一些因素比如错误检验啥的啦

2\ 属性数据表

向前面 & 向后面

判定对象可见性

法向量

转载于:https://www.cnblogs.com/BirdCage/p/9974054.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值