版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合成膜电位器工岗中安全专项考核试卷含答案
- 水工混凝土维修工岗前竞争考核试卷含答案
- 车用加气站操作员岗位安全应急考核试卷含答案
- 客服考题测试题及答案
- 习作七:写信教案
- 高浓度稳定性二氧化氯溶液的研制及其在自来水消毒中的效能与前景探究
- 高比能量之路:硅-锗基负极材料制备与锂电性能探秘
- 高校贷款办学财务风险预警及防范的研究-以某地方高校为例
- 高校教育国际化浪潮下中外合作办学管理机制的创新与实践
- 高校工程研究中心发展策略深度剖析
- 2026年摩托驾照测试题及答案
- 班组安全互保联保制度培训
- 二年级数学计算题专项练习1000题汇编
- (2026年)肠内营养相关性腹泻的预防及护理课件
- 中西医结合治疗常见传染病课件
- 2026年村级集体经济强村公司发展与收益分配规范测试
- 2026年新编党支部书记应知应会测试试卷(带答案)
- 护理教学查房示范课件
- 供热管网管道焊接施工方案
- 医疗设备操作SOP(标准操作程序)模板
- 公寓电气施工方案(3篇)
评论
0/150
提交评论