武汉理工大学《计算机图形学》大作业

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

《计算机图形学基础》大作业

课程名称计算机图形学基础开课学院计算机科学与技术学院指导教师姓名佘名高

学生姓名杨峻

学生专业班级软件工程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

#include

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

#include

#include

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.程序截图:

相关文档
最新文档