武汉理工大学《计算机图形学》大作业
- 格式:doc
- 大小:311.50 KB
- 文档页数:9
《计算机图形学基础》大作业课程名称计算机图形学基础开课学院计算机科学与技术学院指导教师姓名佘名高学生姓名杨峻学生专业班级软件工程11022013-2014 学年第一学期一、命题计划题目:C语言图形编程(以下题目文档要求:①基本论述②算法③程序源代码④界面图)二、内容与要求(1)撰写内容1.根据Bresenham直线绘制算法,实现直线的绘制。
2.用C语言编写:画y=sin(x)的图形(要求画出[-2π,2π]的图形及笛卡尔坐标)3.用C语言编写一个小圆沿着大圆运动的程序。
4.对图1中的零件图形,如何根据它所标注的尺寸,按照适当的顺序有步聚地画出该图形。
提示:首先要分析此零件图形的几何关系,了解构成这个图形各线段的性质,才能顺利地绘出此图形。
线段(直线或圆弧)在零件图形中分为三类,即已知线段、中间线段和连接线段。
以圆弧为例,按几何原理,已知圆心的两个位置尺寸与半径尺寸便可画出圆。
因此图形中,已知这三个尺寸的圆弧称为已知圆弧,画图时应该最先画出。
凡已知其中二个尺寸的圆弧称为中间圆弧。
凡只已知一个尺寸(一般是圆弧半径)的圆弧称为连接圆弧。
中间圆弧和连接圆弧都缺省圆心的位置尺寸,它的几何位置是根据相切的条件来确定的。
因此画圆弧的顺序为:先画已知圆弧,再画中间圆弧,最后画连接圆弧。
本零件图形是对称图形,三个小圆均匀分布在圆周中心线上,φ10,φ25,φ50和R10都是已知圆弧,R8为连接圆弧,φ50是已知圆弧的端点和R10已知圆弧的端点与连接圆弧的端点相切,从而构成整个图形。
(2)撰写要求1.基本论述2.算法3.程序源代码4.程序运行截图5.小结3.程序源代码#include<stdio.h>#include<graphics.h>void bresenhamline (int x0,int y0,int x1, int y1,int color) {int x, y, dx, dy,i;float k, e;dx = x1-x0; dy = y1- y0; k=0.7*dy/dx;e=-0.5; x=x0; y=y0;for (i=0; i<=dx; i++){ putpixel (x, y, color);x=x+1; e=e+k;if (e>= 0) { y++, e=e-1;}}}void main(){int gd = DETECT;int gm;initgraph(&gd,&gm,"");bresenhamline(130,100,200,350,YELLOW);getchar();}4.程序运行截图3.程序源代码#include "stdio.h"#include "graphics.h"#include "math.h"#include "conio.h"void drawSin(int x,int y,int A){int i = 0;line(x-300,y,x+300,y);line(x+290,y-10,x+300,y);line(x+290,y+10,x+300,y);line(x,y-200,x,y+200);line(x-10,y-190,x,y-200);line(x+10,y-190,x,y-200);for (i = -314/2 ;i<(314/2) ;i++){putpixel(x+i,(int)A * sin((double)i/25)+y,WHITE); }}void main(){int gd = DETECT;int gm;initgraph(&gd,&gm,"");drawSin(300,200,100);getch();closegraph();}4.程序运行截图3.程序源代码#include <stdio.h>#include<graphics.h>#include <math.h>void main(){int gd = DETECT;int gm;int i;float x;x=0;initgraph(&gd, &gm, "");cleardevice();for (i=0;i<=3600;i++){circle(320,240,110);circle(320+100*cos(x),240+100*sin(x),40); x=x+0.0175;Sleep(1000);cleardevice();}getchar();closegraph(); }4.程序运行截图4.程序截图:。
一、填空题(每空0.5分,共1 0分)1、 计算机图形学中的罔形是指由点、线、而、体等 ________________ 和明喑、灰度(亮度)、色彩等 ____________________ 构成的,从现实世界中抽象出来的带齐灰度、色彩及形状的图或形。
2、 一个计算机图形系统至少应具有 ___________ 、 _____________ 、输入、输出、 __________ 等基本功能。
3、 常用的字符描述方法有:点阵式、 ______________ 和 _________________ 。
4、 字符串剪裁的策略包栝 _____________________ 、 __________________ 和笔划/像素精确度。
5、 所谓齐次坐标就是用 ____________ 维14景表示一个n 维14量。
6、 投影变换的要素有:投影对象、 ________________ 、 _______________ 、投影线和投影。
7、 输入设备在逻辑上分成定位设备、描画设备、定值设备、 _____________________ 、拾取设备和 ____________________O8、 人机交互是指用户与计算机系统之间的通信,它是人与计算机之间各种符号和动作的 ________________________ 、9、 按照光的方向不同,光源分类为: ______________ , __________________ , ______________ 。
10、 ___________________________________________________ 从视觉的角度看,颜色包含3个要素:即 _________________________________________________ 、 _______________二、单项选择题(每题2分,共30分。
请将正确答案的序号填在 题后的括号内)1、 在CRT 显示器系统中,()是控制电了束在屏幕上的运动轨迹。
1、使用glut库,编写OpenGL程序框架#include<windows.h>#include<glut.h>#include<stdio.h>#include<stdlib.h>#include<math.h>void init(void){glClearColor(1.0,1.0,1.0,0.0);glMatrixMode(GL_PROJECTION);gluOrtho2D(0.0,200.0,0.0,150.0);}void lineSegment(void){glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0,0.0,0.0);glBegin(GL_LINES);glVertex2i(180,15);glVertex2i(10,145);glEnd();glFlush()}void main(int argc,char**argv){glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);glutInitWindowPosition(50,100);glutInitWindowSize(400,300);glutCreateWindow("An Example OpenGL Program");init();glutDisplayFunc(lineSegment);glutMainLoop(); }二、分别用奇偶规则和非零环绕指出图1中的内部区域。
1)奇偶规则:从任意位置P作不经过顶点的射线计算射线穿过的多边形边的数目;奇数:内部点;偶数:外部点。
2)非零环绕数规则:统计多边形边以逆时针方向环绕某一特定点的次数,称为环绕数;环绕数初始为零;从位置P作不经过顶点的射线;多边形边从右至左穿过射线,加1;多边形边从左至右穿过射线,减1;其中:非零:内部点;零:外部点。
关于计算机艺术的发展与应用的文献综述梁文卓(08007236)【摘要】:计算机艺术是两个学科的交融。
计算机属于工科,属于自然科学。
而艺术则是思想领域范畴的,两者交汇会衍生出新的学科。
我随着科技的日益发展,计算机运算的速度和精度日益提高,随之而来的就是信息时代,而图形处理则作为信息时代的产物。
本文从计算机艺术这个主题出发,以图形处理作为切入点,论述了艺术在计算机图形处理当中的应用。
本文分两部分:第一部分为艺术的数位化现象的讨论;第二部分为计算机艺术在各个领域中的应用。
【关键字】:计算机艺术、图形处理、艺术的数位化现象随着科技的进步,计算机走近了人们的日常生活。
计算机图形处理则是其改善人们生活方式的其中一个体现。
计算机通过数码相机或者扫描仪把图形读入,然后进行平面立体化或空间立体化的处理,在计算机显示器上建立了“虚拟空间”,表现了科学技术与思想情感的有机结合。
然而,这些处理后的图形还不能称得上图形艺术,因为这些视觉图形虽然通过软件让人们产生共性和美感,但是却不具备艺术创作的本质内涵。
只有将人们的思想与计算机技巧结合起来,这样的作品才称得上是一件计算机艺术品。
第一部分:艺术的数位化现象的讨论。
在计算机艺术的这个论题上,很多学者提出了很多思辨性的结论。
翟建勇教授从哲学的角度讨论了计算机图形的美学价值。
他认为电子图像是设计的产物,表达了设计者的美学观,设计者在满足作品的用途的条件下,加入了个人的思想。
计算机图形的“个人因素”是其美学价值重要的组成部分,一副图形的美丑都不是图形的美学价值重点,关键在于它是否正确表达作者想要表达的思想。
雍晴在她的学位论文中提出了对电脑动画创作现状的思考。
她认为数码艺术中技术、艺术以及情感应该达到一种平衡的状态。
她重新定义了数码艺术的含义。
由于我国数码艺术的起步较晚,很多人对数码艺术的认识仅仅停留在计算机技术应用这样一个层面上。
她认为数码艺术虽然依赖于技术,但技术无论多么重要,它都是手段而不是目的。
计算机图形学大作业报告记录(灯光纹理映射)————————————————————————————————作者:————————————————————————————————日期:大作业报告实验课程名称:计算机图形学学生姓名:班级:学院(系):学生学号:指导教师:成绩:一、目的这次大作业是作为这学期的最后的一个考核,所以必须要用到所有的本学期学过的知识,比如怎样画出三维图形,怎样在图像上在图像上添加纹理光照,怎样使用鼠标和键盘进行人机交互等。
二、主要功能模块设计1 矩阵运算模块的设计:功能描述:程序启动后,这部分功能模块会为整个应用程序提供算法支持,具体是矩阵直接的相互运算,在2D向3D转化过程中会起到很重要的作用。
代码设计:float vv(float * v1, float * v2){return v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];}void vxv(float * n, float * v1, float * v2){n[0] = v1[1] * v2[2] - v1[2] * v2[1];n[1] = v1[2] * v2[0] - v1[0] * v2[2];n[2] = v1[0] * v2[1] - v1[1] * v2[0];}void loadIdentity(Matrix m){Matrix identity = {{1.0,0.0,0.0,0.0},{0.0,1.0,0.0,0.0},{0.0,0.0,1.0,0.0},{0.0,0.0,0.0,1.0}};for(int i = 0;i < 4; i++)for(int j = 0;j < 4; j++)m[i][j] = identity[i][j];}void preMultiply(Matrix p, Matrix m){int i , j;Matrix t;for( i = 0; i < 4; i ++)for( j = 0; j < 4; j++)t[i][j] = p[i][0] * m[0][j] + p[i][1] * m[1][j] + p[i][2] * m[2][j] + p[i][3] * m[3][j];for( i = 0; i < 4; i ++)for( j = 0; j < 4; j ++)m[i][j] = t[i][j];}2 显示图形模块的设计:功能描述:该模块主要为所要画的图形进行描述,是绘制图形的主要函数,通过调用这个功能模块就能画出用于显示给用户的图形。
计算机图形学课程结课大作业学号5011110122学生姓名阿依萨丽姑丽·麦麦提专业计算机科学与技术班级计算机15-1班塔里木大学教务处制《计算机图形学》课程结课作业提示:1、请将答案写在此文档的相应位置,图形需在VC++ 6.0下客户区屏幕中心绘制,大小可以根据个人需求定制;2、请将相关的文档,包括程序的相关文档进行压缩,并将压缩文档上传到ftp://210.26.176.123“大作业电子版文档”文件夹下命名为“班级-学号-姓名”,纸质版于2014年12月19日下午18:00—20:00交到逸夫楼109。
一、选题(此题5分)请根据你抽中的题号,正确理解其所对应的简笔画。
请写出你选中的题号,将图粘贴到下方,并为其取一个合适的名字。
我选的题号是:20号图,名字为:房子。
二、组成(此题10分)请分析你所选择的题目,由哪些简单图形组成,并写出其所对应的函数或原理。
请在下方表格中简要写明函数的原型或原理的名字即可。
如果表格行数不够,请自行添加。
三、参数说明(此题15分)请写出相关函数的参数,并分析出每个参数的含义,要求此题务必写清每个函数的作用和使用方法。
画图的时候我使用了绘制直线段函数MoveTo()和LineTo()。
直线段的绘制过程中有一个称为“当前位置”的特殊位置。
每次绘制直线段都是以当前位置为起点,直线段绘制结束后,直线段的终点又成为当前位置。
由于当前位置在不断更新,所以使用LineTo()函数可以绘制连续直线。
(1)设置起点位置函数cpoint MoveTo(int x,int y);cpoint MoveTo(POINT point);参数:新位置的点坐标x和y;point是POINT结构或CPoint。
本函数只将画笔的当前位置移动到坐标x和y处,不画线。
(2)绘制直线段函数BOOL LineTo(int x,int y);BOOL LineTo(POINT point);参数:直线段终点坐标x和y;point是POINT结构或CPoint对象。
延安大学计算机图形学期末作业学号:*************姓名:***班级:信息14学期:2017.3-2017-71. 简述彩色光栅扫描显示器的工作原理,并说明显示器能显示的彩色颜色个数与显存大小之间的关系。
答:(1)工作原理:光栅扫描显示器是画点设备,可看作是一个点阵单元发生器,并可控制每个点阵单元的亮度。
其基本结构由三部分组成:显示器、图形控制器和缓存寄存器。
光栅扫描将CRT 屏幕分成由像素构成的光栅网格,其中的每个像素点都具有灰度和颜色,所有像素的灰度和颜色信息保存在一个专门的内存区域中,简称帧缓存。
CRT 中的水平和垂直偏转线圈分别产生水平和垂直磁场,电子束在不同方向磁场力作用下从左向右,从上向下扫描荧光屏,产生一幅幅光栅,并由显示内容控制所扫描的像素点是否发亮,从而形成具有多种彩色及多种明暗度的图像。
(2)关系:显示器颜色的数目和一帧画面可同时显示的颜色数,与荧光屏的质量有关,并受显示存储器容量的影响。
设分辨率为m ×n 、颜色数为K ,显存大小为V :K n m V 2log ⨯⨯≥ bit2. 使用中点画圆法绘制一个椭圆,椭圆的相关参数自己决定答:(1)核心思想:由椭圆的方程:1=+2222by a x 可得其隐函数形式:222222b a y a x b y x -+=),(F由椭圆的4对称性,以一象限椭圆弧为例。
圆弧分上下两部分,以弧上斜率为-1的点(法向两个分量相等的点分界点)作为分界点。
由几何知识可推导出分界点所在法向量分量满足关系式2b 2x=2a 2y 。
在分界点的上半部法向量的y 分量更大;在下部分,法向量的x 分量更大。
因而可得出,在上部分(x p ,y p )的中点,有x ,y 法向量分量关系如下:b2(x p+1)<a2(y p-0.5) (*)从而该关系式可作为算法中判断当前点处于上下部分的依据。
与圆中点算法类似:在确定一个像素点后,接着代入两个候选像素点的中点坐标值与椭圆隐函数中,由隐函数的正负,来最终确定选取的像素点。
本软件系统概述
Autodesk Maya是美国Autodesk公司出品的世界顶级的三维
动画软件,应用对象是专业的影视广告,角色动画,电影特技等。
Maya功能完善,工作灵活,易学易用,制作效率极高,渲染真实感极强,是电影级别的高端制作软件。
Maya
售价高昂,声名显赫,是制作者梦寐以求的制作工具,掌握了Maya,会极大的提高制作效率和品质,调节出仿真的角色动画,渲染出电影一般的真实效果,向世界顶级动画师迈进。
Maya 集成了Alias、Wavefront 最先进的动画及数字效果技术。
它不仅包括一般三维和视觉效果制作的功能,而且还与最先进的建模、数字化布料模拟、毛发渲染、运动匹配技术相结合。
在目前市场上用来进行数字和三维制作的工具中,Maya 是首选解决方案。
谢谢观赏
信息技术学院
宋红林084209135陈凯炜084209134。
深圳大学实验报告课程名称:计算图形学实验名称:3D建模和真实感图形绘制学院:计算机与软件学院专业:计算机科学与技术报告人:学号:******* 班级: 1同组人:无指导教师:**实验时间:2014年11、12月实验报告提交时间:2014/12/28教务处制一.实验目的1、使用OpenGL创建和动画你自己设计的角色。
2、熟悉3D层次建模和转换。
二.实验步骤1、打开VC6.0打开工作空间modeler.dsw, 可以看到工程的所有工程都包含进来了。
找到sample.cpp并打开。
2、找到sample.cpp中的draw函数,在这个函数中绘制图形。
首先,在一对glPushMatrix()和glPopMatrix()之间用glTranslated函数确定绘制图形坐标系的原点(以下图形的绘制均用到这对函数,后面不再赘述)。
然后用三角形绘制平行四边形的地板,用setDiffuseColor函数设定不同的颜色参数。
主要代码如下:2、为模型绘制背景,即三角旋转阶梯。
同样的,用三角形绘制,使得整个画面看起来像舞台般宽敞华丽。
主要代码如下(为了方便截图,一行代码过长的地方我都做了换行截断):3、在舞台的中心设置柱子。
为了使其更加精致美观,此处用三角形拼接柱子,并且颜色设置成黄白相间,使气氛柔和淡雅。
4、柱子一般都有柱台的。
此处用长方体作为柱台,大气得体。
颜色选择淡蓝色,正好跟柱子的颜色相辉映。
主要代码如下:5、俗话说好事成双。
在同一个层次中,我再绘制了同样的柱子和柱台,使画面呈现对称美。
6、柱子是空心的,得给它加个“盖子”。
为了统一柱子的结构,此处依然用三角形拼接柱子的尖顶,尖顶作为柱子的下一个层次。
如图:主要代码如下:7、柱子上再加个球体,显得气势恢宏。
用drawSphere函数就可以了。
下面是加上两个球体后的效果:8、场景都绘制好了,下面增加人物模型。
此处先画身体,选择圆柱函数来画。
设置上下底的半径,就可以画出一条可爱的小裙子了。
《进化平衡球》项目报告17赵鸿宇2020年5月24日1项目概述《进化平衡球》是使用Unity3D制作的一款线性游戏,游戏流程约20分钟。
游戏采用极简美术风格,基本只使用Unity自带的球和方块搭建场景,使用的素材均为自制或可商用的免费素材。
虽然画面比较简陋,但具有优秀的游戏性和创意。
2游戏介绍本游戏的基础玩法源自《平衡球(Ballance)》,主要创意部分借鉴自《进化之地(Evoland)》,这里只说明其主要玩法:平衡球是一种玩家操控具有物理属性的小球进行运动,在不掉落的前提下到达终点的游戏;进化之地是一个RPG游戏,玩家在游玩过程中会逐渐解锁一些历史上出现过的RPG要素。
本游戏的开始玩家只能操控一个2D的黑白小球向前行走,但随着游戏的进行会解锁各种要素,直到最后操控着完整体的小球与具有十余种形态的BOSS进行激烈的弹幕战。
而与进化之地不同的是,本游戏的BOSS每变换一种形态,就会夺走一种之前解锁的要素,禁止跳跃、穿模摄像机……最终又回到2D场景,并且被剥夺了自由移动的能力,这个时候你的选择是……?3游戏部分要素说明更换材质更换材质是原版平衡球中的重要功能。
原版平衡球偏向解谜,所以设计上是到某个位置固定换某种材质;而我的游戏后期比较偏向动作,故13游戏部分要素说明2可以随时主动更换材质。
材质和原版完全一致,分为三种:木头,金属和纸。
三种材质具有不同的物理属性。
移动本游戏一开始只能使用WASD移动,后来增加了方向键,再后来需要同时使用两套操控模式加速,还是有一定操作感的。
虽然摩擦力和空气阻力因为时间原因没有写,但现在这样没有阻力其实也是一种方案。
跳跃本游戏中实现了三种不同的跳跃模式:普通,二段跳以及无限跳跃。
一般的跳跃的实现的主要问题是判断小球是否在地上,具体实现方法是向正下方发射一条短距离的射线。
二段跳的实现则借助计数器。
在特定位置经过复杂的操作(或者巧合的操作)可能会卡模型跳不起来或者跳的特别高,考虑到目前顶级的3D平台游戏(比如任天堂的那几个)也有同样的问题,我没有尝试解决它。
《计算机图形学》实验指导书、作业学期:2011-2012(2)班级:测绘工程10-1班姓名:汪帅学号:20100202测绘工程学院目录实验一直线段生成算法实现 (1)实验二圆生成算法的实现 (5)实验三二维图形几何变换的实现 (8)实验四直线段裁剪算法的实现 (13)实验报告1 (19)实验报告2 (26)实验报告3 (30)实验报告4 (37)实验一 直线段生成算法实现一、实验目的熟练掌握DDA 直线生成算法、中点直线生成算法、Bresenham 直线生成算法的算法思想,了解各个算法中寻找直线段上的像素点的过程。
二、实验学时 2学时三、实验类型现代实验、验证性、自立式四、实验要求1.根据指导书所给的参考代码,每人至少实现两种直线段的生成算法。
2.要求能够实现任意起始点和终止点坐标的直线段的绘制。
3.能够实现不同线型(实线、虚线、点划线)、不同线宽(单像素宽度、多像素宽度)的直线段的绘制。
五、实验原理与步骤 原理:1.数值微分法(DDA )设一直线段的起点和终点坐标分别为(xs , ys)和(xe , ye)。
则直线段在X 和Y 方向的增量分别为: △x=xe- xs ,△y= ye- ys 设△t=max(|△x|,|△y|)取时间步长为1/△t,若当前像素点坐标为(xi, yi),则下一个像素点的坐标可由以下两式确定: xi+1=xi+dx=xi+Dx/Dt yi+1=yi+dy=yi+Dy/Dt 2.中点直线生成算法:假定直线斜率0<m<1,且已确定点亮象素点P (Xi ,Yi ),则下一个与直线最接近的像素只能是P1点或P2点。
设M 为中点,Q 为交点,现需确定下一个点亮的象素。
当M 在Q 的下方-> P2离直线更近更近->取P2 。
M 在Q 的上方-> P1离直线更近更近->取P1 M 与Q 重合, P1、P2任取一点。
假设直线方程为:ax+by+c=0 其中a=y0-y1, b=x1-x0, c=x0y1-x1y0 F(x,y)=0 点在直线上面 F(x,y)>0 点在直线上方 F(x,y)<0 点在直线下方欲判断M 点是在Q 点上方还是在Q 点下方,只需把M 代入F(x,y),并检查它的符号。
计算机图形学大作业计算机图形学是一门融合计算机科学与绘图技术的学科,它已成为当今人工智能发展的重要组成部分。
它的研究主要是围绕具有图形表示形式的计算机屏幕图像的产生及处理以及数字图像的存储、处理等方面展开的。
计算机图形学的研究及应用得到了广泛应用,如动画制作、图像处理、科学可视化、智能识别等等,在电子游戏、电影及动画制作、合成图像等方面都发挥着重要作用。
在计算机图形学的课程学习当中,大作业是一个重要的组成部分。
大作业通常由学生们根据老师的要求,自行挑选或发挥创造力进行编写,根据不同的要求内容,学生有必要进行深入的钻研研究,完成一篇具有深度的以计算机图形学为主题的文章。
在计算机图形学大作业的内容中,首先要确定写作的主题和目标,确定文章的研究方向及内容,定义作业目标和范围。
然后,要细化研究内容,收集资料,分析学术论文和权威文献,如计算机图形学的发展历史、计算机图形学的基础原理、研究方法、应用领域以及未来的发展趋势等。
确定文章的写作形式,如报告、白皮书、论文和演讲等,根据不同的写作形式配置不同的内容结构。
此外,还要将获取的资料进行整理编写,正确组织语言、架构有条理的框架,撰写详尽、有力的文章,将所研究的内容详细梳理,归纳出层次清晰、概念明确、理论严谨的文章,力求说服力及深度。
同时,在完成写作内容后,要加强文章的质量控制,及时修订文章,添加精彩的细节,提高文章的质量,最终形成一篇条理清晰、内容丰富、表达流畅的计算机图形学大作业文章。
总之,完成一篇计算机图形学为主题的大作业文章,要求学生有深入的了解和研究,掌握计算机图形学的原理、范畴和实践,以深刻理解计算机图形学的基本原理和应用,通过完成一篇系统的计算机图形学大作业,扩展学生的学习深度,对计算机图形学的学习有更深的理解和把握。
滁州学院图形学设计报告课程名称:计算机机图形学设计题目:简单图形绘制软件的设计与实现系别:计算机科学与技术系专业:姓名:起止日期:2011年5月20日~ 2011年6月20日指导教师:计算机科学与技术系二00九年制目录⒈引言 (1)⒉需求分析 (1)⒊概要设计 (1)3.1概要设计实现的内容 (1)3.2函数的功能描述 (1)⒋详细设计 (2)⒌调试与操作说明 (4)⒍课程设计总结与体会 (6)⒎致谢 (6)⒏参考文献 (6)⒐附录 (7)课程设计的主要内容⒈引言本学期系统的学习了计算机图形学,在学期末按课程要求对其进行设计,本课程主要内容包括以图形学算法为目标,深入研究。
续而策划设计实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面做出评价和改进意见。
通过完成一个完整程序,经历策划、设计、开发、总结。
达到通过本课程设计,使自己巩固和实践计算机图形学课程中的理论和算法;掌握基本图形显示程序设计方法,及二维和三维图形变换等程序设计方法,学习表现计算机图形学算法的技巧。
同时以达到培养认真学习积极探索的精神。
⒉需求分析图形学设计报告题目:地球与卫星模拟图。
图形学设计报告任务及要求:以计算机图形学的研究内容、发展与应用,实现图形输入输出设备,图形显示原理,图形软件标准,基本图形生成算法,图形几何变换与裁剪,自由曲线和曲面,三维实体造型,光照模型,颜色模型,光线跟踪,纹理模拟,常用的计算机动画技术和软件等。
课程设计思想:绘制一个地图与卫星模拟图,在此中综合实现本学期中学习到OpenGL编程中大部分的方法与操作。
软硬件运行环境:Microsoft Windows XP。
工发工具:VC++ 6.0。
⒊概要设计3.1概要设计实现的内容利用VC++ 6.0完成了一个地图与卫星模拟图,该模拟图能实现基本的图形操作功能。
通过本次实验,应该了解图形学里使用OpenGL的一些基于操作,了解直线、矩形、圆和Bezier曲线和曲面等图形的绘制原理、旋转原理、移动原理和缩放原理等。
(二〇一四年十一月《计算机图形学》结课作业 学校代码:10128 学号:题目:计算机艺术 学生姓名:学院:理学院 系别:数学系 专业:信息与计算科学 班级:信计11-1 任课教师:摘要科技在社会发展中扮演着不可或缺的角色,计算机已经深深地影响着我们生活的方方面面,改变着我们的生活方式,改变着我们的文化,也包括在国内并不大众的艺术领域,计算机艺术学科是数字化时代新兴的艺术形式,新的热点随计算机软硬件的发展不断涌现,技术的发展为艺术家认识和表现世界提供更多更新的方式,同时,艺术的创新也促进社会的发展。
我们都已经习惯了信息时代高速效率带来的便利,而人与计算机之间的交互也是决定计算机领域发展的一个重要因素,将现实生活直观的展示在计算机中,使人类更具体的了解我们的生活。
所以计算机图形艺术的研究更更是尤为重要。
关键词:计算机艺术学科美学引言 (1)第一章计算机图形学原理 (2)1.1计算机图形学概述 (2)1.2计算机图形学的内容 (2)1.3计算机图形学的前景 (4)第二章计算机艺术 (8)2.1计算机与艺术 (8)2.2计算机艺术学科的特点 (8)2.2计算机艺术学科的发展趋势 (9)参考文献 (12)引言人们用计算机进行图形设计和制作,应用于摄影、装潢、广告各个领域,将科技与美术设计完美的结合起来,而日益更新的设计软件正逐步取代设计师手中的笔、颜料、及喷枪。
给我们展示出区别于传统设计的全新形象。
且具有传统设计所无法比拟的强大优越性。
计算机艺术设计是融科学、艺术、实践为一体的新型应用技术。
它是以计算机科技为基础,设计艺术与计算机技术相结合的一种艺术创作手段。
它是一门融科学性、艺术性、技术性,创造现代艺术产品的综合性学科,通过计算机来表达艺术语言和设计思想。
计算机艺术设计得益于计算机图形学和计算机硬件系统的发展。
计算机艺术设计开阔了设计师的视野,提高了设计的表现质量。
第一章计算机图形学原理1.1计算机图形学概述简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。
程序大作业选题内容用VC++或者OpenGL上机编程实现如下算法,选择OpenGL编程者可以将文献综述报告选为对OpenGL图形标准和相关库函数的介绍。
程序设计报告规定用A4纸打印,规定报告规定有以下内容:1设计目的和规定2算法原理介绍3程序源代码4程序运营结果抓图5参考文献6 学习体会1.NURBS曲线的生成与显示。
规定可以演示出w权因子的变化对曲线形状的影响,以及控制顶点的变化对曲线形状的影响,有良好的程序界面,交互式地控制w因子的变化和控制顶点的变化,以示可以通过控制点和权因子来灵活地改变形状。
2.参数多项式曲面的生成与显示涉及双线性曲面、单线性曲面、双三次参数曲面片、孔斯(Coons)曲面。
3.双三次Bezier曲面的生成与显示规定用不同颜色显示双三次Bezier曲面和曲面的控制网格,并且可以取消曲面控制网格的显示,允许交互式地改变控制网格的顶点位置,以观看Bezier曲面性状的改变。
4.双三次B样条曲面的生成与显示规定用不同颜色显示双三次B样条曲面和曲面的控制网格,并且可以取消曲面控制网格的显示,允许交互式地改变控制网格的顶点位置,以观看B样条曲面性状的改变。
5.扫描曲面的生成与显示通过任意指定被运动的基体、以及基体运动的途径,显示生成的扫描曲面。
6.生成并显示Julia集和Madelbrot集的逐级放大图。
如下图所示:7.实现分形图像压缩算法。
规定可以实现图像的打开、显示和保存功能,并同时显示压缩前和压缩后的图像。
8.用随机插值模型生成并显示山的模型9.绘制Sierpinski金字塔(需要考虑多边形绘制的顺序,并使用消隐算法,才干显示对的的结果)10.绘制Sierpinski海绵(需要考虑多边形绘制的顺序,并使用消隐算法,才干显示对的的结果)11.用粒子系统模拟自然景物,例如跳动的火焰、烟雾、下雨、行云、随风摇曳的草丛等(任选其一)。
12.任意选择一种消隐算法,实现曲面物体的消隐(例如一个圆环中间放置一个球)。
《计算机图形学基础》大作业
课程名称计算机图形学基础开课学院计算机科学与技术学院指导教师姓名佘名高
学生姓名杨峻
学生专业班级软件工程1102
2013-2014 学年第一学期
一、命题计划
题目:C语言图形编程
(以下题目文档要求:①基本论述②算法③程序源代码④界面图)
二、内容与要求
(1)撰写内容
1.根据Bresenham直线绘制算法,实现直线的绘制。
2.用C语言编写:画y=sin(x)的图形(要求画出[-2π,2π]的图形及笛卡尔坐标)3.用C语言编写一个小圆沿着大圆运动的程序。
4.对图1中的零件图形,如何根据它所标注的尺
寸,按照适当的顺序有步聚地画出该图形。
提示:首先要分析此零件图形的几何关系,了解
构成这个图形各线段的性质,才能顺利地绘出此图形。
线段(直线或圆弧)在零件图形中分为三类,即已知线
段、中间线段和连接线段。
以圆弧为例,按几何原理,
已知圆心的两个位置尺寸与半径尺寸便可画出圆。
因
此图形中,已知这三个尺寸的圆弧称为已知圆弧,画
图时应该最先画出。
凡已知其中二个尺寸的圆弧称为
中间圆弧。
凡只已知一个尺寸(一般是圆弧半径)的圆
弧称为连接圆弧。
中间圆弧和连接圆弧都缺省圆心的位置尺寸,它的几何位置是根据相切的条件来确定的。
因此画圆弧的顺序为:先画已知圆弧,再画中间圆弧,最后画连接圆弧。
本零件图形是对称图形,三个小圆均匀分布在圆周中心线上,φ10,φ25,φ50和R10都是已知圆弧,R8为连接圆弧,φ50是已知圆弧的端点和R10已知圆弧的端点与连接圆弧的端点相切,从而构成整个图形。
(2)撰写要求
1.基本论述
2.算法
3.程序源代码
4.程序运行截图
5.小结
3.程序源代码
#include<stdio.h>
#include<graphics.h>
void bresenhamline (int x0,int y0,int x1, int y1,int color) {
int x, y, dx, dy,i;
float k, e;
dx = x1-x0; dy = y1- y0; k=0.7*dy/dx;
e=-0.5; x=x0; y=y0;
for (i=0; i<=dx; i++)
{ putpixel (x, y, color);
x=x+1; e=e+k;
if (e>= 0) { y++, e=e-1;}
}
}
void main()
{
int gd = DETECT;
int gm;
initgraph(&gd,&gm,"");
bresenhamline(130,100,200,350,YELLOW);
getchar();
}
4.程序运行截图
3.程序源代码
#include "stdio.h"
#include "graphics.h"
#include "math.h"
#include "conio.h"
void drawSin(int x,int y,int A){
int i = 0;
line(x-300,y,x+300,y);
line(x+290,y-10,x+300,y);
line(x+290,y+10,x+300,y);
line(x,y-200,x,y+200);
line(x-10,y-190,x,y-200);
line(x+10,y-190,x,y-200);
for (i = -314/2 ;i<(314/2) ;i++)
{
putpixel(x+i,(int)A * sin((double)i/25)+y,WHITE); }
}
void main()
{
int gd = DETECT;
int gm;
initgraph(&gd,&gm,"");
drawSin(300,200,100);
getch();
closegraph();
}
4.程序运行截图
3.程序源代码
#include <stdio.h>
#include<graphics.h>
#include <math.h>
void main()
{
int gd = DETECT;
int gm;
int i;
float x;
x=0;
initgraph(&gd, &gm, "");
cleardevice();
for (i=0;i<=3600;i++)
{
circle(320,240,110);
circle(320+100*cos(x),240+100*sin(x),40); x=x+0.0175;
Sleep(1000);
cleardevice();
}
getchar();
closegraph(); }
4.程序运行截图
4.程序截图:。