计算机图形学基础:第一讲 绪论
2022-05-10 18:09:51 5.55MB 文档资料
1.绘制金刚石图案 金刚石图案的成图规则是:把一个圆周等分成n份,然后每两点之间连线。当n取奇数时,该图案可一笔连续绘成,即用MoveTo函数确定一个当前点,然后连续用LineTo函数连点成线。请设计连线规则并编程实现。 2.绘制魔术三角形 绘制下图所示的魔术三角形图案 ,采用三种可明显区分的颜色填充。 3.绘制递归圆 应用递归的方法绘制如下所示的图案。
1
1. 实验内容 实验三——二维图形变换 北极星图案的绘制:完成对北极星图案的缩放、平移、旋转、对称等二维变换。 2. 实验环境 软硬件运行环境:Windows 10;开发工具:VC 6.0 3. 问题分析 为了建立北极星图形,首先在二维空间中根据坐标绘制出北极星图形。并且在此坐标系中确定好走笔顺序以便于进行连线操作。同时需要正确合理地使用清屏函数以使得显示正常。 1)放大缩小变换 放大缩小变换公式为:;其中分别为方向的放缩比例系数。 2)对称变换 对称变换包括以x轴对称、y轴对称和原点0对称三种。 3)旋转变换 将图形上的点旋转θ角度,得到新的坐标。 4)平移变换 利用平移变换矩阵即可。 4. 算法设计 创建DrawPolaris(CDC* pDC, long x[18] ,long y[18])画图函数,将输入的18个点按照规则连线。 5. 源代码 //北极星 void DrawPolaris(CDC* pDC,long x[18],long y[18]){} void CDiamondView::Polaris(){} 7. 总结 希望在今后的学习中...
计算机图形学基础:第八讲 网格(Mesh)细分与网格简化
2022-05-10 09:07:44 879KB 综合资源
计算机图形学基础:第二讲 图形学中的一些重要概念
2022-05-10 09:07:43 1.45MB 文档资料 综合资源
图形学作业:五角星VC++画法 void CHuayuView::OnDraw(CDC* pDC) { CHuayuDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here //画五角星 int X0=100,Y0=100,R=80; float a[6][3],b[6][3]; float xr; float pi=3.14; a[1][1] = X0; a[1][2] = Y0 + R; a[2][1] = X0 + R * sin(pi / 2.5); a[2][2]= Y0 + R * cos(pi / 2.5); a[3][1] = R * sin(pi / 5) + X0; a[3][2] = Y0 - R * cos(pi / 5); a[4][1] = -R * sin(pi / 5) + X0; a[4][2] =a[3][2]; a[5][1] = X0 - R * sin(pi / 2.5); a[5][2] = a[2][2]; xr = (a[2][2] - Y0) / cos(pi / 5); b[1][1] = X0 - sin(pi / 5) * xr; b[1][2] = a[2][2]; b[2][1] = X0 + sin(pi / 5) * xr; b[2][2] = b[1][2]; b[3][1] = sin(pi / 2.5) * xr + X0; b[3][2] = -cos(pi / 2.5) * xr + Y0; b[4][1] = X0; b[4][2] = -xr + Y0; b[5][1] = -sin(pi / 2.5) * xr + X0; b[5][2] = b[3][2]; pDC->MoveTo(a[5][1], a[5][2]); int i; for(i=1;i<6;i++) { pDC->LineTo(b[i][1], b[i][2]); pDC->LineTo(a[i][1], a[i][2]); } pDC->MoveTo(a[1][1], a[1][2]);pDC->LineTo(b[4][1], b[4][2]); pDC->MoveTo(a[2][1], a[2][2]);pDC->LineTo(b[5][1], b[5][2]); pDC->MoveTo(a[3][1], a[3][2]);pDC->LineTo(b[1][1], b[1][2]); pDC->MoveTo(a[4][1], a[4][2]);pDC->LineTo(b[2][1], b[2][2]); pDC->MoveTo(a[5][1], a[5][2]);pDC->LineTo(b[3][1], b[3][2]); int c[5][2]; for(i=0;i<5;i++) {c[i][0]=(a[i+1][1]+b[i+1][1]+X0)/3; c[i][1]=(a[i+1][2]+b[i+1][2]+Y0)/3; } int d[5][2]; for(i=0;i<5;i++) {d[i][0]=(a[i+1][1]+b[i+2][1]+X0)/3; d[i][1]=(a[i+1][2]+b[i+2][2]+Y0)/3; } d[4][0]=(a[5][1]+b[1][1]+X0)/3; d[4][1]=(a[5][2]+b[1][2]+Y0)/3; CBrush brush; brush.CreateSolidBrush(RGB(0,255,0)); pDC->SelectObject(&brush); for(i=0;i<5;i++) {pDC->ExtFloodFill(c[i][0],c[i][1],RGB(0,0,0),FLOODFILLBORDER);//在指定的区域内填充颜色 Sleep(40); } CBrush brush2; brush2.CreateSolidBrush(RGB(222,111,222)); pDC->SelectObject(&brush2); for(i=0;i<5;i++) {pDC->ExtFloodFill(d[i][0],d[i][1],RGB(0,0,0),FLOODFILLBORDER); Sleep(40); } }
2022-05-09 23:41:07 1.85MB 五角星VC++画法
1
计算机图形学实验四Cohen-Sutherland直线段裁剪算法
1
2.Bezier曲线的拼接 问题的提出:如何保证连接处具有G1和G2连续性。 在两段三次Bezier曲线间得到G1连续性 为实现G1连续,则有: 亦即:
2022-05-09 16:43:57 1.51MB 计算机图形学
1
参数连续性与几何连续性 参数连续性 连续性定义; 零阶、一阶参数连续的充要条件 几何连续性 零阶几何连续定义; 一阶几何连续定义; 二阶几何连续定义;
2022-05-08 10:51:03 11.19MB 计算机图形学
1
计算机图形学PDF版本,附带实例代码,有助于提高实践,还配带CAD培训课件等。。 欢迎大家一起学习分享。
2022-05-07 17:17:19 19.46MB 图形学,CAD,课件,实例代码
1