计算机图形学(二)
来源:互联网 发布:cntk caffe 编辑:程序博客网 时间:2024/05/28 04:55
输出图元
图元(primitive):图形软件包中用来描述各种图形元素的函数
屏幕坐标:扫描行号y0,列号x
setPixel (x,y)//设置(x,y)处的帧缓存getPixel (x,y)//获得(x,y,color)处的帧缓存的颜色值
OpenGL画点函数
glBegin (GL_POINTS);//指定要显示的输出图元类型,GL_POINTS点的绘制 glVertex* ();//描述任意一点位置,*表示有后缀(3f)glEnd();
点可以是数,矩阵,struct
OpenGL画线函数
GL_LINES//两端点一对,线段
GL_LINE_STRIP//折线段,从第一个端点开始,到最后一个端点结束,中间为经过的点
GL_LINE_LOOP//封闭折线,最后一个端点与第一个端点连接
曲面
1.多边形填充
- 1.1多边形分类
凸多边形:所有内角小于180度
凹多边形
退化多边形:共线顶点,重叠顶点(线段:所有顶点共线)
OpenGL要求所有填充多边形都为凸多边形
凹多边形识别方法
- 计算连续两边向量叉积,有负则为凹多边形。
- 凹多边形某些边的延长线会与多边形边界相交
2.多边形分割
2.1向量法
凹多边形分割为一堆凸多边形
假定所有多边形均在xy平面上
逆时针方向处理边向量,若有叉积为负,多边形可按叉积中第一边向量的直线进行切割。
2.2旋转法
沿多边形的边的逆时针方向,逐一将顶点Vk移动到坐标原点,顺时针旋转多边形,使下一顶点Vk+1落在x轴上,如果下一个顶点Vk+2落在x轴下方,则为凹多边形,利用x轴将多边形分割为两个新多边形。
2.3将凸多边形分割为三角形集
3.内外测试
3.1奇偶规则
从p开始向坐标范围以外的远点画一条射线,统计该射线与边的交点,若相交边数为奇,则为内部点。
3.2 非零环绕数
所有的边按照统一的方向统计有多少条是从同一侧面通过这条射线的,又有多少条是从射线另一侧通过的,之后相减,如果结果是零,表示之前任意选择的点在图形外部,其他一切非零数表示在内部
- 射线与边叉积看z轴坐标正负
射线与边点积看正负
非零环绕数应用:平面图形分为不相连区域,字符,拼接多边形,同心圆
3.3 布尔操作
使用布尔操作指定填充区域为两区域的混合,
先为每一区域定义简单的无相交的边界,然后如果考虑每一边界的方向为逆时针,那么两区域的并包含那些使环绕数为正的点
类似地,逆时针边界的两区域的交包含那些使环绕数大于1的点
要建立两区域差的填充区,如A-B,我们可以引入逆时针边界的A和顺时针边界的B。其差区域即为那些使环绕数为正的点。
- 计算机图形学(二)
- 计算机图形学(二)
- 《计算机图形学》读书笔记(二)
- 《计算机图形学》读书笔记(二)
- 计算机图形学学习记录(二)
- 计算机图形学(二)输出图元
- 计算机图形学笔记---Cg语言(二)
- 《计算机图形学》学习笔记(二)
- 计算机图形学(一)
- 计算机图形学(一)
- 计算机图形学(二)输出图元_9_填充区图元
- 计算机图形学(二)输出图元_12_OpenGL顶点数组
- 计算机图形学(二)输出图元_16_字符函数
- 计算机图形学(二)输出图元_17_图形分割
- 【计算机图形学】二、椭圆的生成
- 计算机图形学 (二) 图元的属性
- 《计算机图形学》读书笔记(一)
- 《计算机图形学》读书笔记(一)
- 个人或企业网站建设备案不备案有区别?如何备案?
- 一些式子
- 关于AndroidStudio中提示cannot resolve symble R,但程序可以正常build和run的问题
- Java反射详解
- 最小生成树 [克鲁斯卡尔算法] --->图
- 计算机图形学(二)
- sqlserver 中NOLOCK、HOLDLOCK、UPDLOCK、TABLOCK、TABLOCKX
- 经典问题之约瑟夫问题的快速解决
- error: insufficient permissions for device(解决adb shell问题)
- JavaEE学习笔记之SSH—Hibernate(2)
- Ubuntu14.04下eclipse中使用rohc库
- Java创建线程的两个方法
- Poj 3304 Segments
- 好的技术网站总站总结