计算机图形学大作业——武汉理工大学_第1页
计算机图形学大作业——武汉理工大学_第2页
计算机图形学大作业——武汉理工大学_第3页
计算机图形学大作业——武汉理工大学_第4页
计算机图形学大作业——武汉理工大学_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学 号成 绩计算机图形学基础大作业课 程 名 称计算机图形学基础开 课 学 院计算机科学与技术学院指导教师姓名学 生 姓 名学生专业班级20 -20 学年 第 学期一、命题计划题目:C语言图形编程(以下题目文档要求:基本论述 算法 程序源代码 界面图)二、内容与要求(1)撰写内容1根据Bresenham直线绘制算法,实现直线的绘制。2用C语言编写:画y=sin(x)的图形(要求画出-2,2的图形及笛卡尔坐标)3用C语言编写一个小圆沿着大圆运动的程序。4对图1中的零件图形,如何根据它所标注的尺寸,按照适当的顺序有步聚地画出该图形。提示:首先要分析此零件图形的几何关系,了解构成这个图形各线段的性质

2、,才能顺利地绘出此图形。线段(直线或圆弧)在零件图形中分为三类,即已知线段、中间线段和连接线段。以圆弧为例,按几何原理,已知圆心的两个位置尺寸与半径尺寸便可画出圆。因此图形中,已知这三个尺寸的圆弧称为已知圆弧,画图时应该最先画出。凡已知其中二个尺寸的圆弧称为中间圆弧。凡只已知一个尺寸(一般是圆弧半径)的圆弧称为连接圆弧。中间圆弧和连接圆弧都缺省圆心的位置尺寸,它的几何位置是根据相切的条件来确定的。因此画圆弧的顺序为:先画已知圆弧,再画中间圆弧,最后画连接圆弧。本零件图形是对称图形,三个小圆均匀分布在圆周中心线上,10,25,50和R10都是已知圆弧,R8为连接圆弧,50是已知圆弧的端点和R10

3、已知圆弧的端点与连接圆弧的端点相切,从而构成整个图形。(2)撰写要求1.基本论述2.算法3.程序源代码4.程序运行截图5.小结 一、根据Bresenham直线绘制算法,实现直线的绘制。1.基本论述2.算法 3.程序源代码#include <graphics.h>#include <conio.h >#include <math.h>#include <iostream.h>void main()int gd=DETECT,gm; /使用自检的方式initgraph(&gd,&gm,"");/初始化图形系统cle

4、ardevice();/清屏int x,y;/起始点int xe,ye;/终点 int x1=20,y1=30;int x2=200,y2=100;int dx=fabs(x2-x1),dy=fabs(y2-y1);int d=2*dy-dx;if (x1>x2)x=x2;y=y2;xe=x1;ye=y1;elsex=x1;y=y1;xe=x2;ye=y2;moveto(x,y);while (x<xe)x=x+1;if(d<0)d=d+2*dy;elsey=y+1;d=d+2*(dy-dx);lineto(x,y);getch();closegraph();/ 关闭图形系统

5、4.程序运行截图5. 小结二、用C语言编写:画y=sin(x)的图形(要求画出-2,2的图形及笛卡尔坐标)1.基本论述2.算法3.程序源代码#include<iostream.h>#include<graphics.h>#include<math.h>#include<conio.h>void main()initgraph(600,400);cleardevice();float x,y,del,d;int a,b;a=getmaxx()/2;b=getmaxy()/2;line(a,0,a-10,10);line(a,0,a+10,10);l

6、ine(2*a,b,2*a-10,b-10);line(2*a,b,2*a-10,b+10);line(0,b,2*a,b);line(a,0,a,2*b);outtextxy(a+5,b+5,"0");outtextxy(2*a-15,b+5,"x");outtextxy(a+5,15,"y");outtextxy(a+20*3.14-10,b+5,"/2");outtextxy(a+40*3.14-5,b+5,"");outtextxy(a+60*3.14-15,b+5,"3/2&

7、quot;);outtextxy(a+80*3.14-10,b+5,"2");outtextxy(a-20*3.14-10,b+5,"-/2");outtextxy(a-40*3.14-10,b+5,"-");outtextxy(a-60*3.14-15,b+5,"-3/2");outtextxy(a-80*3.14-10,b+5,"-2");outtextxy(a-10,b-90,"1");outtextxy(a-10,b-180,"2");outtex

8、txy(a-15,b+90,"-1");d=2*3.1416;del=0.001;for(x=-d;x<=d;x+=del)y=sin(x);putpixel(x*40+a,-y*80+b,WHITE);getch();closegraph();4.程序运行截图5.小结三、用C语言编写一个小圆沿着大圆运动的程序。1.基本论述2.算法3.程序源代码#include<iostream.h>#include<graphics.h>#include<conio.h>#include<math.h>void main()initg

9、raph(800,600);cleardevice();float x=0;int a=0;for(int i=0;1<=2000;i+)for(a=0;a+)circle(a%800,300,100);circle(a%800+100*cos(x),300+100*sin(x),30);x+=0.01;Sleep(20);cleardevice();getch();closegraph();4. 程序运行截图5.小结四、对图1中的零件图形,如何根据它所标注的尺寸,按照适当的顺序有步聚地画出该图形。1.基本论述2.算法3. 程序运行截图 4.小结5. 代码#include<iost

10、ream.h>#include<graphics.h>#include<conio.h>#include<math.h>void main()initgraph(1000,800);cleardevice();float PI=3.1415926;float t=PI/180;int a=400;int b=300;float r=100*sqrt(3);circle(a,b,100);circle(a,b-r,50);circle(a+r*cos(7*PI/6),b-r*sin(7*PI/6),50);circle(a-r*cos(7*PI/6),b

11、-r*sin(7*PI/6),50);arc(a-100,b-r-100,a+100,b-r+100,0,180*t);arc(a-200,b-200,a+200,b+200,0,60*t);arc(a-200,b-200,a+200,b+200,120*t,180*t);arc(a-200,b-200,a+200,b+200,240*t,300*t);arc(a-r*cos(7*PI/6)+100,b-r*sin(7*PI/6)-100,a-r*cos(7*PI/6)-100,b-r*sin(7*PI/6)+100,240*t,60*t);arc(a+r*cos(7*PI/6)+100,b-r*sin(7*PI/6)-100,a+r*cos(7*PI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论