
计算机图形学
文章平均质量分 88
我要抱紧了
这个作者很懒,什么都没留下…
展开
-
二维图形学的变换-平移、旋转、缩放 OpenGL
这里实现的是多点画多边形,然后把这个多边形进行二维的变换。首先,多点画多边形,为了方便起见,我直接调用了Opengl的库函数。其次,就是如何进行多边形的二维变换。在这里我有两种方法。第一种是直接根据数学三角等公式推断得到结果。第二种方法是用矩阵相乘的方法。先讲第一种:平移假如我要平移a到b的位置:那么操作就是:把这个多边形的n个顶点从一个位置移动到另外一个位置,然后原创 2016-12-14 13:34:28 · 35459 阅读 · 8 评论 -
稀疏矩阵相乘——三元组稀疏矩阵
请编写并测试一个稀疏矩阵相乘的函数matrix sparse_matrix_mul(const matrix&m1, constmatrix& m2)其中matrix为一个描述稀疏矩阵的结构体:struct matrix{float* _elements; //矩阵中所有元素的数组(按列优先的顺序)int* _colheads; //每列的开始元素在_elements数组中原创 2016-12-15 20:03:28 · 2433 阅读 · 0 评论 -
基于Opengl的画直线—BresenhamLine算法
画直线基本思想:假设直线的斜率01.画起点(x0, y0).2.准备画下一个点,X坐标加1,判断如果达到终点,则完成。否则找下一个点,由图可知要画的点要么为当前点的右邻接点,要么是当前点的右上邻接点。 2.1.如果线段ax+by+c=0与x=x1+1的交点y坐标大于(y+*y+1))/2则选右上那个点 2.2.否则选右下那个点。3.画点4.跳回第2步5.结束原创 2016-12-15 20:21:55 · 6756 阅读 · 1 评论 -
基于Opengl的画圆—中心画圆算法
画圆之前,首先需要了解如下: 当F(x, y)= 0,表示点在圆上,当F(x, y)> 0,表示点在圆外,当F(x, y)1和P2的中点,则M的坐标是(xi + 1, yi – 0.5),当F(xi +1, yi – 0.5)1点离实际圆弧更近,应该取P1作为圆的下一个点。同理分析,当F(xi + 1, yi – 0.5)> 0时,P2离实际圆弧更近,应取P2作为下一个原创 2016-12-15 20:27:48 · 5891 阅读 · 0 评论