计算机图形学课程报告

合集下载

计算机图形学报告

计算机图形学报告

淮阴工学院计算机科学系实验报告书课程名:《计算机图形学》题目:实验2圆或椭圆的绘制班级:学号:姓名:1、实验内容或题目1、通过实验,进一步理解和掌握DDA和中点算法;2、掌握以上算法生成直线段、椭圆或圆的基本过程;3、通过编程,会在TC环境下完成用DDA或中点算法实现直线段、椭圆或圆的绘制。

2、实验目的与要求用DDA算法或中点(Besenham)算法实现直线段、椭圆或圆的绘制。

3、实验步骤与源程序⑴实验步骤1、算法、原理清晰,有详细的设计步骤;2、依据算法、步骤或程序流程图,用C语言编写源程序;3、编辑源程序并进行调试;4、进行运行测试,并结合情况进行调整;5、对运行结果进行保存与分析;6、打印源程序或把源程序以文件的形式提交;7、按格式书写实验报告。

⑵源代码#include "stdio.h"#include "conio.h"#include "graphics.h"#include<time.h>#include<math.h>void ellipsepoint(long x0,long y0,long x,long y,long color){putpixel((int)(x0+x),(int)(y0+y),(int)color);putpixel((int)(x0-x),(int)(y0+y),(int)color);putpixel((int)(x0+x),(int)(y0-y),(int)color);putpixel((int)(x0-x),(int)(y0-y),(int)color);}void midpointellipse(long x0,long y0,long a,long b,long color) {long x,y,d,sa,sb,xp,yp;sa=a*a,sb=b*b;xp=(long)((float)sa/(float)sqrt((float)(sa+sb)));yp=(long)((float)sb/(float)sqrt((float)(sa+sb)));x=0,y=b,d=sa+4*sb-4*sa*b;while(x<xp){if(d<0){d=d+4*sb*(2*x+3);x++;}else{d=d+4*sb*(2*x+3)+4*sa*(2-2*y);x++;y--;}ellipsepoint(x0,y0,x,y,color);}x=a,y=0,d=4*sa+sb-4*a*sb;while(y<yp){if(d<0){d=d+4*sa*(2*y+3);y++;}else{d=d+4*sa*(2*y+3)+4*sb*(2-2*x);y++;x--;}ellipsepoint(x0,y0,x,y,color);}}main(){clock_tstart=clock(),end,t;intgraphdriver=VGA,graphmode=VGAHI;initgraph(&graphdriver,&graphmode,"");midpointellipse(300,200,300,180,RED);end=clock();t=end-start;printf("%d\n",t);getch();closegraph();}4、测试数据与实验结果(可以抓图粘贴)5、结果分析与实验体会在这次实验中,我们遇到了很多困难,刚开始我们在实现圆的绘制时,调试后,要么就是没有图形,要么就是在左上角有个四分之一的圆,在其过程中,代码也改了好多次。

计算机图形学报告

计算机图形学报告

院系:计算机科学学院专业:计算机科学与技术年级: 2008级课程名称:计算机图形学班号:姓名:学号:指导教师:2011 年 6 月 27 日实验名称直线的扫描转换实验室实验目的或要求实验目的1)理解在显示器上画图与在纸上画图的本质区别; 2)掌握直线的光栅扫描转换过程;3)掌握不同算法绘制直线的思路和优缺点。

实验要求1)将像素网格表现出来,建立网格坐标系;2)用橡皮筋的形式输入参数;3)鼠标移动时,显示鼠标当前位置;4)显示判别式的计算过程和下一点的选择策略;5)记录生成点的坐标,建议用表的形式;6)图形生成过程可以重复进行。

实验原理基本增量算法思想:如果在一个迭代算法中,每一步的x值和y值都可以由前一步的的值加一个增量得到,那么这种算法就称为增量算法。

最基本的增量算法是DDA算法1)数值微分分析器(Digital Differential Analyzer)2)DDA算法的本质是用数值方法解直线的微分方程Bresenham算法基本思想:借助于一个决策变量d的正负符号,来确定下一个该点亮的像素点.程序代码DDA核心算法代码如下:void DDALine (float xs, float ys, float xe, float ye, int color) {int n, ix, iy, idx, idy ;int Flag; //步进方向标记int Length; //步进长度float x, y, dx, dy;dx = xe - xs;dy = ye - ys;if (fabs(dy) <= fabs(dx)) { //X方向长,|斜率|<=1 Length = abs(Round(xe)-Round(xs));Flag = 1; //最大的步进长度和方向标记ix = Round(xs); //初始X点idx = sign(dx); //X方向单位增量y = ys + dy / dx*((float)(ix)-xs); //初始Y点修正dy = dy / fabs(dx); //Y方向增量(斜率)}else { // Y方向长,|斜率|>1Length = abs(Round(ye)-Round(ys));Flag=0;iy = Round(ys); //初始Y点Idy = sign(dy); //Y方向单位增量x= xs+dx/dy*((float)(iy)-ys); //初始X点修正dx=dx/fabs(dy); //X方向增量(斜率的倒数) }if (Flag) { //X方向单位增量for (n=0; n<= Length; n++) { //X方向步进过程DrawPixel(ix, Round(y), color);ix+=idx;y+=dy;} //End of for} //End of ifelse { //Y方向斜率增量for (n=0; n<= Length; n++) { //Y方向步进过程DrawPixel (Round(x), iy, color);iy+=idy;x+=dx;} //End of for} //End of else} //FinishBresenham核心算法代码如下:void BresenhamLine(int x1, int y1, int x2, int y2, int color) {int x, y;int dx, dy, dt1,dt2,d;dx = x2 - x1; dy = y2 - y1;d = (dy << 1) – dx;dt1 = dy << 1;dt2 = (dy - dx) << 1;x = x1; y = y1;for(i=0; i<dx; i++) {DrawPixel(x, y, color);x=x+1;if(d>0){y=y+1;d += dt2;}d += dt1;}实验结果及分析DDA算法结果截图DDA算法优缺点1 用DDA算法计算像素位置,可消除直线方程中的乘法,在x和y方向使用合适的增量可逐步沿直线推出各像素的位置,比直接画线算法快。

计算机图形学报告

计算机图形学报告

计算机图形学总结报告学院:计算机与通信工程学院班级:计算机12-01学号:姓名:指导教师:计算机图形学总结报告一:课程总结通过一个学期的学习,了解了什么是计算机图形学、什么是图形API、为什么需要计算机图形学以及计算机图形学在各个领域的应用。

在学习过程中我们也通过实验课真正的了解和尝试的制作某些比较简单的图形学案例,比如一些基本的画笔与画刷、用鼠标交互式画图的算法、菜单编辑、一些基本的图形算法等等,其中我还以金刚石图案算法作为了我的特色程序设计。

计算机图形学是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学,研究的是应用计算机产生图像的所有工作,不管图像是静态的还是动态的,可交互的还是固定的,等等。

图形API是允许程序员开发包含交互式计算机图形操作的应用而不需要关注图形操作细节或任务系统细节的工具集。

计算机图形学有着广泛的应用领域,包括物理、航天、电影、电视、游戏、艺术、广告、通信、天气预报等几乎所有领域都用到了计算机图形学的知识,这些领域通过计算机图形学将几何模型生成图像,将问题可视化从而为各领域更好的服务。

计算机图形学利用计算机产生让人赏心悦目的视觉效果,必须建立描述图形的几何模型还有光照模型,再加上视角、颜色、纹理等属性,再经过模型变换、视图变换、投影操作等,通过这些步骤从而实现一个完整的OpenGL程序效果。

OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植。

计算机图形学通过应用OpenGL的功能,使得生成的图形效果具有高度真实感。

学习计算机图形学的重点是掌握OpenGL在图形学程序中的使用方法。

21世纪是信息的时代,在日新月异的科技更新中相信计算机会发挥越来越重要的作用,计算机图形学也会在更多的领域所应用,虽然我国在这方面还比较薄弱,但相信会有越来越好的时候的。

二:特色程序设计——金刚石图案算法(一):知识要点●在Visual C++ 6.0环境下创建MFC AppWizard(exe)。

计算机图形学课程设计报告

计算机图形学课程设计报告

一、设计内容与要求、设计题目算法实现时钟运动、总体目标和要求(1)目标:以图形学算法为目标,深入研究。

继而策划、设计并实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。

通过完成一个完整程序,经历策划、设计、开发、测试、总结和验收各阶段,达到巩固和实践计算机图形学课程中的理论和算法;学习表现计算机图形学算法的技巧;培养认真学习、积极探索的精神。

(2)总体要求:策划、设计并实现一个能够充分表现图形学算法的演示系统,界面要求美观大方,能清楚地演示算法执行的每一个步骤。

(3)开发环境:、设计要求内容:(1)掌握动画基本原理;(2)实现平面几何变换;功能要求:(1)显示时钟三个时针,实现三根时针间的相互关系;(2)通过右键菜单切换时钟背景与时针颜色;设计方案通过使用OpenGL提供的标准库函数,综合图形学Bresenham画线和画圆的算法,OpenGL颜色模型中颜色表示模式等实现指针式时钟运动,并通过点击右键菜单实习时钟背景与时针颜色的转换。

根据Bresenham画线和画圆的算法,画出时钟的指针和表盘。

再根据OpenGL颜色模型定义当前颜色。

设置当时钟运行时交换的菜单,运行程序时可变换时钟背景与时针的颜色。

最后再设置一个恢复菜单恢复开始时表盘与指针的颜色。

二、总体设计、过程流程图1(1)圆是满足x轴对称的,这样只需要计算原来的1/2点的位置;(2)圆是满足y轴对称的,这样只需要计算原来的1/2点的位置;通过上面分析可以得到实际上我们计算椭圆生成时候,只需要计算1/4个椭圆就可以实现对于所有点的生成了。

2、中点椭圆算法内容:(1)输入椭圆的两个半径r1和r2,并且输入椭圆的圆心。

设置初始点(x0,y0)的位置为(0,r2);(2)计算区域1中央决策参数的初始值p = ry*ry - rx*rx*ry + 1/4*(rx*rx);(3)在区域1中的每个Xn为止,从n = 0 开始,直到|K|(斜率)小于-1时后结束;<1>如果p < 0 ,绘制下一个点(x+1,y),并且计算p = p + r2*r2*(3+2*x);<2>如果P >=0 ,绘制下一个点(x+1,y-1),并且计算(4)设置新的参数初始值;p = ry*ry(X0+1/2)*(X0+1/2) + rx*rx*(Y0-1) - rx*rx*ry*ry;(5)在区域2中的每个Yn 为止,从n = 0开始,直到y = 0时结束。

计算机图形学课程设计报告

计算机图形学课程设计报告

课程设计报告书设计名称:计算机图形学课程设计题目:画图程序的实现学生姓名:专业:计算机科学与技术(网络技术)班别:学号:指导老师:绘图小工具此绘图工具可以画直线、椭圆、矩形、曲线,可动态改变画笔的大小,画笔风格有连笔、单笔、填充颜色、实线、虚线1、虚线2,可根据需要选择其中一种,另外,还以根据需要调出颜色板定义颜色。

为了方便选择颜色进行绘图,特意在绘图区增加了颜料盒,操作将更加方便快捷。

1.总体界面如下:1.1“绘图”菜单界面1.2“画笔大小”菜单1.3“风格”菜单1.4“调色板”菜单及颜料盒2.各功能的实现及代码2.1首先在StdAfx.h头文件中定义全局变量extern int num; //记住“绘图”菜单选择extern int num2; //颜色填充选择extern int width; //记住“画笔大小”选择extern int fengge; //“风格”选择(连笔/单笔)extern int col,penstyle; //记住“颜料盒”与“调色板”的选择及画笔风格extern COLORREF c;//各种颜色的选择再在在StdAfx.cpp中初始化以上定义的各变量int num,num2=1,width,col=0,fengge=10,penstyle=0;COLORREF c;2.2.在Draw1View.h中定义CDDraw1View类私有变量POINT points[20];int m_Num;POINT m_pPrev; //画图的前一个终点POINT m_pOrigin; //画图起点POINT m_pPrev2;POINT m_pOrigin2; //记录获取颜料盒颜色时鼠标所在坐标int m_Drag; //鼠标状态HCURSOR m_HCursor;2.3.画图时以按下鼠标左键记住作图起点,为鼠标左键添加消息映射,函数如下:void CDraw1View::OnLButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultCClientDC dc(this);OnPrepareDC(&dc);dc.DPtoLP(&point);m_pPrev=point; //画图的前一个终点m_pOrigin=point; //点击鼠标左键作为拖动绘图的第一点m_Drag=1; //设置鼠标为拖动状态CView::OnLButtonDown(nFlags, point);}2.4.鼠标左键按下时已将其状态设为拖动状态,当鼠标移动时可以作画,为鼠标移动添加消息映射,函数如下:void CDraw1View::OnMouseMove(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultCClientDC dc(this);OnPrepareDC(&dc);dc.DPtoLP(&point);CBrush MyBrush,*OldBrush;if(m_Drag)//鼠标左键按下时已经将状态设为真{CPen NewPen,*pOldPen;if(col= =0) //选择颜料盒颜色c=dc.GetPixel(m_pOrigin2.x,m_pOrigin2.y);NewPen.CreatePen(penstyle,width,c);pOldPen=dc.SelectObject(&NewPen);if(num2= =0) //选择为图像填充颜色时,num2=0.{MyBrush.CreateSolidBrush(c);OldBrush=dc.SelectObject(&MyBrush);}dc.SetROP2(fengge);//风格(单笔:fengge=10/连笔:fengge=9) switch(num) //选择画直线(num=0)、椭圆(num=1)、矩形(num=2)、曲线(num=3) { case 0: dc.MoveTo(m_pOrigin); dc.LineTo(m_pPrev);dc.MoveTo(m_pOrigin); dc.LineTo(point);break;case 1: dc.Ellipse(m_pOrigin.x,m_pOrigin.y,m_pPrev.x,m_pPrev.y);dc.Ellipse(m_pOrigin.x,m_pOrigin.y,point.x,point.y);break;case 2: dc.Rectangle(m_pOrigin.x,m_pOrigin.y,m_pPrev.x,m_pPrev.y);dc.Rectangle(m_pOrigin.x,m_pOrigin.y,point.x,point.y);break;case 3: if(penstyle= =0) //选择画实曲线时(penstyle=0){dc.MoveTo(m_pOrigin);dc.LineTo(point);m_pOrigin=point;}else dc.SetPixel(point.x,point.y,c); //选择画虚曲线}m_pPrev=point; //把新的点设为所作图形的前一个终点dc.SelectObject(pOldPen);}CView::OnMouseMove(nFlags, point);}2.5.当作完画松开鼠标左键时要将鼠标状态设置为非拖动状态以停止作画,为鼠标左键松开添加消息映射,函数如下:void CDraw1View::OnLButtonUp(UINT nFlags, CPoint point){m_Drag=0;//设置为非拖动状态CView::OnLButtonUp(nFlags, point);2.6.当按下鼠标右键时记录此时鼠标的坐标以获取该像素点的颜色,为鼠标右键按下添加消息映射,函数如下:void CDraw1View::OnRButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultCClientDC dc(this);dc.DPtoLP(&point);m_pOrigin2=point;//点击鼠标右键获取此时鼠标所在位置的颜色col=0; //col=0时,所选颜色为颜料盒颜色,col=1时为调色板颜色CView::OnRButtonDown(nFlags, point);}2.7.当需要清除所画图形时,双击鼠标右键,为双击鼠标右键添加消息映射,函数如下:void CDraw1View::OnRButtonDblClk(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultCDraw1Doc *pDoc=GetDocument();pDoc->UpdateAllViews(NULL);CView::OnRButtonDblClk(nFlags, point);}2.8.颜料盒代码,先画矩形后填充各种不同的颜色,函数如下:void CDraw1View::OnDraw(CDC* pDC){CDraw1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);int j=0;CBrush MyBrush,*OldBrush;MyBrush.CreateSolidBrush(RGB(205,203,203));OldBrush=pDC->SelectObject(&MyBrush);pDC->Rectangle(0,0,200,40);MyBrush.DeleteObject();for(int i=0;i<=160;){ if(j==0){ MyBrush.CreateSolidBrush(RGB(255,0,0));OldBrush=pDC->SelectObject(&MyBrush);}else if(j==10){ MyBrush.CreateSolidBrush(RGB(0,255,0));OldBrush=pDC->SelectObject(&MyBrush);}else if(j==20){ MyBrush.CreateSolidBrush(RGB(53,121,248));OldBrush=pDC->SelectObject(&MyBrush);}else if(j==30){ MyBrush.CreateSolidBrush(RGB(250,0,250));OldBrush=pDC->SelectObject(&MyBrush);}else if(j==40){ MyBrush.CreateSolidBrush(RGB(151,53,227));OldBrush=pDC->SelectObject(&MyBrush);}else if(j==50){ MyBrush.CreateSolidBrush(RGB(223,225,14));OldBrush=pDC->SelectObject(&MyBrush);}else if(j==60){ MyBrush.CreateSolidBrush(RGB(251,242,4));OldBrush=pDC->SelectObject(&MyBrush);}else if(j==70){ MyBrush.CreateSolidBrush(RGB(3,3,3));OldBrush=pDC->SelectObject(&MyBrush);}else if(j==80){ MyBrush.CreateSolidBrush(RGB(250,250,250));OldBrush=pDC->SelectObject(&MyBrush);}pDC->Rectangle(10+i,10,30+i,30);i+=20;j+=10;MyBrush.DeleteObject();}}2.9.修改画笔大小时,函数如下:void CPenWidth::OnOK(){UpdateData();CPenWidth penwidth; // CPenWidth为对话框类width=m_penwidth;CDialog::OnOK();}3.效果展示:。

计算机图形学课程报告

计算机图形学课程报告

目录一、课程内容总结 (2)1.1 课程概述 (2)1.2 课程特点 (2)1.3 待解决问题 (3)二、新型存储设备文献综述 (3)2.1概述 (3)2.2 Eye-Fi (4)2.3 SDXC (5)2.4相变内存 (5)三、收获与体会 (6)3.1 与数学的联系 (6)3.2 收获 (6)四、参考文献 (7)一、课程内容总结1.1 课程概述《计算机图形学技术》是为计算机科学与技术专业本科生开设的专业任选课,旨在介绍计算机图形学的基本概念、理论、方法和系统。

它向我们讲授图形学的方法和在这一领域的最新成果,同时注重培养学生的动手能力。

“计算机图形学”是计算机科学的重要研究内容之一,它借助数字化手段合成与操作视觉内容,将信息直观地展现给用户,其应用范围覆盖军事仿真、航空航天、文化教育、城市管理、大众娱乐等诸多领域。

随着软硬件技术的不断发展,计算机图形处理能力大大提高,新技术、新方法不断涌现使得“计算机图形学”成为目前发展最为活跃的计算机技术之一。

因为本课程是一门实践性较强的技术基础课,其主要目的是使我们能获得在计算机图形生成与处理方面的基本理论和基本方法,培养学生能够应用计算机来解决在科学研究,工程设计与制造中有关图形处理的能力;在图形学理论与算法方面的科研能力;应用高级绘图软件及对其进行二次开发的能力,并具有开发大型通用或专用绘图软件的能力。

为后续的课程学习及毕业设计,以至于毕业后的工作打下坚实基础。

1.2 课程特点“计算机图形学”与其他计算机专业课程相比,具有一些特点,了解这些特点可以帮助我们更好地学好这门课。

广度大、深度深。

“计算机图形学”的分支多,内容范围广泛,并且大部分内容都有着从过去到现在大量经典、有代表性的方法、技术、算法。

我们以真实感光照计算方法为例,光照计算属于真实感绘制中的研究内容之一。

根据计算方法的不同,它又可分为光线跟踪方法、辐射度方法、辐射度预计算方法,随着显示硬件的发展,又出现了图象映射空间方法等。

计算机图形学课程设计报告

计算机图形学课程设计报告

计算机图形学课程设计报告组号:第七组小组成员:宋洁邵海军谷文海冯新科学院:资源环境学院专业班级:地科14 - 2指导老师:向中林2016.12.18目录1实习目的ﻩ12 课程设计题目ﻩ12.1题目要求及内容ﻩ12.1.1要求ﻩ错误!未定义书签。

2.1.2 内容分析.......................................................... 22.2实习原理ﻩ22.2.1 人机交互ﻩ22.2.2动画ﻩ52.2.3 几何变换 (5)2.2.3.1 二维几何图形变换............................. 错误!未定义书签。

2.2.3.2 三维几何图形变换:ﻩ63 主要流程图ﻩ83.1三维图形处理流程图ﻩ83.2 二维几何画板流程图ﻩ94主要源程序 (9)4.1主要源程序ﻩ94.2.1 键盘事件函数....................................... 错误!未定义书签。

4.2.2 菜单.......................................................... 124.2.2.1 创建菜单函数ﻩ124.2.2.2 光照函数 (14)4.2.2.3 几何变换事件ﻩ16164.2.2.3.1 旋转事件ﻩ4.2.2.3.2移动事件 (17)4.2.2.3.3放大事件............................................ 184.2.2.3.4缩小事件............................... 错误!未定义书签。

5问题讨论ﻩ191实习目的课程设计是信息与计算科学专业集中实践性环节之一,是学习完《计算机图形学》课程后进行的一次全面的综合练习。

其目的是:(1)要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能。

计算机图形学课设报告

计算机图形学课设报告

计算机图形学课程设计报告专业:班级:学号:姓名:指导教师:[设计题目] :计算机图形学设计与实现[设计地点]: 10教4楼[设计人员]:[设计任务] :1:生成直线的DDA算法2:生成直线的中点算法3:生成圆的中点算法4:生成圆的正负法算法5:生成椭圆的中点算法6:扫描转化为矩形7:种子填充算法8:平移变换9:放缩变换10:直线段裁剪二维线画图元的生成1.1. 生成直线段的DDA 算法 基本原理 扫描转换直线段所谓扫描转换直线段就是计算出落在直线段上或充分靠近它的一串像素,并以此像素集近似替代原连续直线段在屏幕上显示的过程。

生成直线段的DDA 算法求表示直线段的像素集的最简单方法是利用直线方程直接计算。

设直线方程为y=m ·x+B DDA 算法描述:(1) 对给定端点的直线段以一个单位像素为分割区间(2) 根据直线方程得到直线段上对应于横坐标的点的纵坐标,于是得到一系列点列(3) 计算出的纵坐标可能是浮点数,并其四舍五入取整 (4) 描点画图 其中,用公式11(1)i i i i i y mx B m x B mx B m y m ++=+=++=++=+我们就从i y 直接得到1i y +,而不是由1i x +通过直线方程来计算1i y +,由此便消除了算法中的乘法。

递推公式的初值为:00(,)(0,0)x y x y =主要程序代码:void dda_line(int x1,int y1,int x2,int y2,int color) /*画直线*//DDA 算法 {int x;float dx,dy,y,m; if(x1==x2) {for(y=y1;y<=y2;y++) putpixel(x1,y,color); }dx=x2-x1; dy=y2-y1; m=dy/dx;y=y1;for(x=x1;x<=x2;x++) {putpixel(x,(int)(y+0.5),color); y+=m; } }运行效果:1. 2. 生成直线段的中点算法 基本原理假定直线段的斜率m ∈[0,1],并且左下方的端点为,0(0,0)P x y ,右上方的端点为1(1,1)P x y 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录一、课程内容总结 (2)1.1 课程概述 (2)1.2 课程特点 (2)1.3 待解决问题 (3)二、新型存储设备文献综述 (3)2.1概述 (3)2.2 Eye-Fi (4)2.3 SDXC (5)2.4相变内存 (5)三、收获与体会 (6)3.1 与数学的联系 (6)3.2 收获 (6)四、参考文献 (7)一、课程内容总结1.1 课程概述《计算机图形学技术》是为计算机科学与技术专业本科生开设的专业任选课,旨在介绍计算机图形学的基本概念、理论、方法和系统。

它向我们讲授图形学的方法和在这一领域的最新成果,同时注重培养学生的动手能力。

“计算机图形学”是计算机科学的重要研究内容之一,它借助数字化手段合成与操作视觉内容,将信息直观地展现给用户,其应用范围覆盖军事仿真、航空航天、文化教育、城市管理、大众娱乐等诸多领域。

随着软硬件技术的不断发展,计算机图形处理能力大大提高,新技术、新方法不断涌现使得“计算机图形学”成为目前发展最为活跃的计算机技术之一。

因为本课程是一门实践性较强的技术基础课,其主要目的是使我们能获得在计算机图形生成与处理方面的基本理论和基本方法,培养学生能够应用计算机来解决在科学研究,工程设计与制造中有关图形处理的能力;在图形学理论与算法方面的科研能力;应用高级绘图软件及对其进行二次开发的能力,并具有开发大型通用或专用绘图软件的能力。

为后续的课程学习及毕业设计,以至于毕业后的工作打下坚实基础。

1.2 课程特点“计算机图形学”与其他计算机专业课程相比,具有一些特点,了解这些特点可以帮助我们更好地学好这门课。

广度大、深度深。

“计算机图形学”的分支多,内容范围广泛,并且大部分内容都有着从过去到现在大量经典、有代表性的方法、技术、算法。

我们以真实感光照计算方法为例,光照计算属于真实感绘制中的研究内容之一。

根据计算方法的不同,它又可分为光线跟踪方法、辐射度方法、辐射度预计算方法,随着显示硬件的发展,又出现了图象映射空间方法等。

而单是光线跟踪方法,除经典的方法外,还有蒙特卡洛光线跟踪、逆向光线跟踪、圆锥光线跟踪、分布式光线跟踪、光束跟踪、基于并行机制的光线跟踪、基于GPU加速的光线跟踪等方法。

理论与实践并重。

“计算机图形学”中基础理论涉及线性代数、离散数学、图论等内容,而一些复杂算法则涉及到概率论、矩阵论、泛函分析、小波分析、优化理论等众多内容。

有时为了逼真显示某个场景,需要对场景中的景物进行物理建模,需要有对应的物理知识。

“计算机图形学”理论内容涉及的数学物理知识广而深。

在实践方面,为了能够编程实现图形学算法,要求很好地掌握数据结构、C或C++等编程语言,OpenGL/DirectX的图形标准,某种图形平台的SDK/API。

目前很多方法是基于图形硬件可编程流水线的,因此,还需要掌握GLSL\HLSL\CG 这样的语言。

实践部分对编程能力要求较高。

具有良好的可展示性。

图形学中的技术和方法通常是在三维空间中进行的,因此,可以通过示意图等方式直观的展现给学生,这样比文字叙述更容易理解。

同时,计算结果、绘制结果往往是以图像的方式存在的,具有良好的可展示性,通过算法运用与否绘制结果的对比,更直接地体现算法特点优势,容易激发起学习者的兴趣。

技术发展快、前沿成果多。

“计算机图形学”作为计算机领域的重要内容,近年来发展非常迅速。

其分支多,内容广,且具有相当深度的特点吸引了大量的国内外高校、研究机构的研究者从事相关的研究工作。

每年众多的国际会议和学术杂志期刊文章展示了图形学领域最新的、最有代表性的、创新性的研究成果。

1.3 待解决问题部分同学没有明确的学习目的,缺乏兴趣。

“计算机图形学”通常作为计算机专业选修课设置。

选修的本科生有大部分为取得学分,少部分是对图形学有兴趣。

在感兴趣的学生之中,仍存在着一些期望和教学内容并不重合的学生,例如某些学生原认为学完图形学就可以制作动画效果了,发现做不到时,就对课程学习的态度发生较大的改变;而另外一部分要从事计算机图形学研究工作的学生,发先课程内容与研究内容相差较远,热情会受到挫伤。

课时少,内容多。

“计算机图形学”涉及的内容非常多,既包括最基础的图形显示设备、二维三维图形绘制显示,又包括真实感、非真实感图形建模与绘制、科学可视化、计算机动画生成、建模绘制的平台工具等方面,每一项内容又包括了很多的技术、方法,经典算法思路和最新研究成果。

因此如果平铺展开逐个来讲,一一列举,时间安排上不允许,也不利于我们对知识的学习掌握。

作为专业选修课,计算机图形学的课时通常为36小时。

那么,如何在较少的时间内,使得学生了解完整的图形学知识体系,掌握部分经典算法、代表性算法主要思想,了解当前研究热点和最近新研究成果,做到点面结合,还需要进一步的讨论偏理论与偏实践。

在国内大学设置“计算机图形学”课程的很长一段时间内,教师将大部分的精力放在课程内容的讲授上,没有对课后作业进行精心设计,学生在课堂上接收到大量知识的填充后,没有自己动手进行实践来巩固知识,因此往往得到的是泛泛的概念,不能很好地对实质内容进行把握,出现“上课听热闹,下课就忘记”的现象。

但这种程序、函数讲授的方式使得课程非常枯燥,往往效果不佳。

二、新型存储设备文献综述2.1概述随着信息技术的发展,企业对信息存储的要求增加,无论是对信息的存储能力还是对信息的共享能力都提出了新的要求,如何更好地利用网络为信息存储提供更好的服务成为了人们首要关心的问题。

主要介绍当今主流网络存储技术之一——存储区域网络SAN,并以华南师大的数据中心为例阐述SAN网络的具体构建过程,提出将高性能的热插拔式服务器与SAN结合,提高服务质量就存储而言,存储原本只是一个很“单纯”的需求,用户只是想将数据保存起来,然而经过了漫长的发展,现今的存储行业已经是一个非常庞大的几乎不亚于CPU芯片业务的全球市场,在这其中闪存业务尤其与我们的生活息息相关,我们现在使用的数码影像设备都离不开对闪存的依赖,闪存产品这种需求下也逐渐演化出更多不同种类的产品以满足多样化的需求。

下面就介绍几种新型存储的典型代表:2.2 Eye-FiEye-Fi最早诞生于2007年,这家公司将WiFi无线技术与存储卡结合起来,提供了一种无须费力的方法,将照片直接从照相机传送到目标主机,可以实现电脑、在线相册、社区网站的即时分享,这是一种从拍摄到分享的全新方式。

简单的说,Eye-Fi其本质上仍然是一块SD的存储卡,只是与一般的SD卡不同的是Eye-Fi加上了无线上网功能,Eye-Fi提供了一种无须费力的方法,当照片没有发送的时候,存储卡将自动关闭无线功能,从而达到节约能源的目的。

另一方面,存储卡不会影响到相机的正常工作。

公司表示,由于网络功能是存在存储卡中,因此不会对相机造成干扰,使用者在拍照时,并不需担心Wi-Fi芯片占用相机处理器的资源。

用户可设定将存储卡中的数据直接传至PC或者网站上;另外也可设定拍照后立即传送,或者等完全拍完后才传送。

和国内不同的是,WiFi热点在国外比较普遍,这也是随着人们越来越多的在各种地点上网的需求而应运而生的,为存储卡加入无线上网功能主要还是由于数码相机相对封闭和单一的连接性造成的,由于目前世面流行的数码相机的厂商基本都是日系品牌,不过日系品牌在数码设备的使用性方面的研发目前已经和世界上最领先的数码设备公司产生了一定的差距,因此索尼的Walkman遭到了iPod 的淘汰,三星超过了松下和索尼成为了全球最大的电子厂商,甚至有人说如果当初乔布斯的apple是从事相机研发的话,今天的数码相机可能完全是“别的样子”。

Eye-Fi创始人暨CEOYuvalKoren说,Eye-Fi这个产品的构想来自2004年的一场婚礼。

当时宾客都拿出相机拍照,“当时大家也都说会发到网上,但一年过去了,我还是没看到任何照片。

”目前Eye-Fi在市面上有销售的产品有从2GB到8GB不等,而最便宜的产品价格也已经下降到了50美元左右(350元人民币),如果你是一个喜欢尝试新鲜事物的朋友,那么Eye-Fi你一定不会想错过。

2.3 SDXCSD卡有很多个不同的种类,从最早的SD,到现在的SDHC,以及我们即将要见到的SDXC。

SDHC大家已经很熟悉了,其实际上就是大容量的SD卡(大于2GB 小于32GB),不过随着大家对数据容量存储需求的日益增涨,32GB的SDHC卡已经渐渐不能满足需求了,于是在2009年的CES展会上,新一代的SDXC卡诞生了。

SDXC目前的最大容量为64GB(已经有成品上市),而这种规格的理论容量为2TB,SDXC支持UHS 104,一种新的超高速SD接口规格,新SD存储卡标准Ver.3.00种的最高标准,其在SD接口上实现每秒104MB的总线传输速度,从而可实现每秒 35MB 的最大写入速度和每秒 60MB 的最大读取速度。

不过我认为,对SDXC更多的期待在于它是否能改变目前SDHC必须采用FAT32文件系统的现状,从而实现突破单个文件存储不能超过4GB的限制,由于现在数码相机和数码单反相机都已经具备了高清视频的拍摄能力,因此现在这些设备的唯一瓶颈就只有存储了。

最后目前SDXC卡的价格仍然非常吓人,绝非一般的消费者能承受的起的,不过随着更多的厂商掌握技术以及量产后的成本下降,未来SDXC会逐步普及到中低端领域中来的。

2.4相变内存大多数人了解相变内存是从三星宣布将在今年推出这类产品来取代当前的手机等电子产品所使用的闪存技术时开始的。

相变内存的英文全称为“Phase-Change Memory”,简称“PCM”,这是被广为看好的下一代闪存技术,相变内存结合了DRAM内存的高速存取,以及闪存在关闭电源之后保留数据的特性,因此被业界普遍视为未来闪存和内存类产品的替代者。

相变内存由相变材料制成,通过加热材料形式来存储数据。

与闪存存储相比,相变内存存储数据时更加省电,预计可延长电池续航时间20%。

在速度方面,相变内存的优势更加明显,其存取数据的速度比闪存快9倍。

根据三星的介绍,其生产相变内存模块预计于今年晚些时候就会下线,最初的容量为 512MB。

另外由IBM等公司合作研发的一种新型相变内存技术,在存储密度、速度和功耗等方面取得了跳跃式进展,在未来有望对闪存或磁硬盘技术带来挑战,尤其是将先在音乐播放器、数码相机等便携式设备中取代当前流行的闪存,并终有一天取代硬盘。

三、收获与体会3.1 与数学的联系如果你并不特别喜欢数学,是否仍有在计算机图形学领域工作的机会?计算机图形学的确有一些方面不需要考虑太多的数学问题。

我们不应该因为数学成绩不好而放弃它。

不过,如果学习了更多的数学知识,似乎你将在研究课题上有更多的选择余地。

比起这些数学的理论价值,我们更倾向于发掘它们的应用价值。

相关文档
最新文档