资源简介
这些程序中,有不少算法是对书上所讲算法的改进和创新(我们用的是北京大学出版社出版的那本《计算机图形学》),并在实践过程中发现了书上所讲的某些算法是不正确的,并不能实现预期的效果。这些源程序在WIN-TC上运行通过。这些源程序,无论是对学习C语言,或计算机图形学来说都具有很高的参考价值。我搜集了6个班的实验源程序和实验报告,可以通过对比来加深对有关算法的理解。
所搜集的这些源程序上包含了计算机图形学几乎所有的基本算法:
简单的二维图形的生成
二维填充图元的生成
二维图形的剪裁
二维图形一些基本变换、简单的曲线变换
三维图形的变换 、面的消隐、平行投影
直线生成、字符显示和图形变换算法;
具体内容包括:
直线生成算法和线宽与线型处理
圆,椭圆和抛物线的生成算法
二维填充图的生成算法
字符的生成算法
二维裁剪生成算法
线段、园、区域填充、线型线宽、字符、裁剪、等基本图形生成算法;样条、Bezier、等常用曲线的生成算法;Coons曲面、Bezier曲面、B样条曲面等常用曲面的生成算法。
并
给出一些综合应用的例子
代码片段和文件信息
#include
#include
#include “stdio.h“
#include “graphics.h“
#include “math.h“
#include“dos.h“
#define closegr closegraph
/*下面为扫描线填充*/
#define MAXPOINT 5
/***********************/
#define max 100
#define true 1
#define error 0
#define false 0
/*#define ORG_X 320 *//*定义原点坐标*/
/*#define ORG_Y 240*/
/*************************/
#define Iterative 24
#define Iterative2 (Iterative*Iterative)
#define Iterative3 (Iterative2*Iterative)
#define X 0
#define Y 1
typedef float Vector[2];
/*************************/
/*#define PATTERN_A 0
#define PATTERN_B 1
#define PATTERN_SOLID -1*/
typedef float vector[2];
typedef struct{
int xy;
}Vertex;
typedef Vertex Edge[2];
typedef Vertex VertexArray[max];
/**************************************************************/
typedef struct{
int y_top;
float x_int;
int delta_y;
float x_change_per_scan;
}EACH_ENTRY;
EACH_ENTRY sides[MAXPOINT];
int x[MAXPOINT]y[MAXPOINT];
int first_slast_sscanbottomscanx_int_countside_count;
int pattern[9][7]={111100001001000100100011100001
100000100000010000011100000000000}; /* 定义字符掩膜的矩阵*/
/**********************************************************************/
/******************************************************************/
struct matrix{ float h[3][3]; };
struct wc{ float xy; };
struct matrix *thematrix;
float radius(float a)
{ return a*3.14/180;}
/***************************************************************/
void initgr(void) /* BGI初始化 */
{
int gd = DETECT gm = 0; /* 和gd = VGAgm = VGAHI是同样效果 */
registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
initgraph(&gd &gm ““);
}
/*界面函数*/
/******************************************************/
/*************************************************************/
void drawmat(char *matint matsizeint xint yint color)
/*依次:字模指针、点阵大小、起始坐标(xy)、颜色*/
{
int i j k n;
n = (matsize - 1) / 8 + 1;
for(j = 0; j < matsize; j++)
for(i = 0; i < n; i++)
for(k = 0;k < 8; k++)
if(mat[j * n + i] & (0x80 >> k)) /*测试为1的位则显示*/
putpixel(x + i * 8 + k y + j color);
}
/*heng*/
void heng(int hxint hy)
{
setcolor(YELLOW);
line(hx+4hy+0hx+11hy+0);
setcolor(WHITE);
line(hx+3hy+1hx+12hy+1);
setcolor(YELLOW);
line(hx+4hy+2hx+11hy+2);
}
/*shu*/
void shu(int sxint sy)
{
setcolor(YELLOW);
line(sx+0sy+3sx+0sy+10);
setcolor(WHITE);
line(sx+1sy+2sx+1sy+11);
setcolor(YELLOW);
line(sx+2sy+3sx+2sy+10);
}
/*############--画0函数--##############*/
void draw_0(int x0int y0)
{
heng(x0y0);
heng(x0y0+20);
shu (x0y0);
shu (x0+13y0);
shu (x0+13y0+10);
shu (x0y0+10);
}
/*############--画1函数--##############*/
void draw_1(int x0int
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 59005 2005-12-13 09:35 计算机图形学源代码\信科0301\newmorning.c
文件 59143 2005-12-13 10:53 计算机图形学源代码\信科0301\信科0301\newmorning.c
文件 78902 2005-12-13 10:53 计算机图形学源代码\信科0301\信科0301\NEWMOR~1.EXE
文件 35329 2005-12-13 10:53 计算机图形学源代码\信科0301\信科0301\NEWMOR~1.OBJ
文件 821760 2005-12-13 09:57 计算机图形学源代码\信科0301\信科0301\计算机图形学论文 信科0301.doc
文件 821760 2005-12-13 09:57 计算机图形学源代码\信科0301\计算机图形学论文 信科0301.doc
文件 373 2005-12-03 00:41 计算机图形学源代码\信科0302\11.c
文件 24458 2005-12-03 00:36 计算机图形学源代码\信科0302\11.EXE
文件 441 2005-12-03 00:36 计算机图形学源代码\信科0302\11.OBJ
文件 79398 2005-12-13 23:51 计算机图形学源代码\信科0302\3D.c
文件 97428 2005-12-13 23:51 计算机图形学源代码\信科0302\3D.EXE
文件 72571 2005-12-13 23:51 计算机图形学源代码\信科0302\3D.OBJ
文件 100052 2005-12-04 14:35 计算机图形学源代码\信科0302\3D02D2~1.EXE
文件 75730 2005-12-04 14:35 计算机图形学源代码\信科0302\3D02D2~1.OBJ
文件 111172 2005-12-13 23:49 计算机图形学源代码\信科0302\3D02E2~1.EXE
文件 90582 2005-12-13 23:49 计算机图形学源代码\信科0302\3D02E2~1.OBJ
文件 105580 2005-12-14 00:00 计算机图形学源代码\信科0302\3D0AD2~1.EXE
文件 83491 2005-12-14 00:00 计算机图形学源代码\信科0302\3D0AD2~1.OBJ
文件 109152 2005-12-14 00:00 计算机图形学源代码\信科0302\3D0AE2~1.EXE
文件 86016 2005-12-14 00:00 计算机图形学源代码\信科0302\3D0AE2~1.OBJ
文件 78468 2005-12-13 23:59 计算机图形学源代码\信科0302\3DBB18~1.EXE
文件 48478 2005-12-13 23:59 计算机图形学源代码\信科0302\3DBB18~1.OBJ
文件 84108 2005-12-13 23:58 计算机图形学源代码\信科0302\3DFD1C~1.EXE
文件 56228 2005-12-13 23:58 计算机图形学源代码\信科0302\3DFD1C~1.OBJ
文件 68439 2005-12-13 23:58 计算机图形学源代码\信科0302\3Dgraphics-XiaoYing.c
文件 37793 2003-01-01 02:12 计算机图形学源代码\信科0302\3Dgraphics1.c
文件 53020 2005-12-14 00:03 计算机图形学源代码\信科0302\3Dgraphics1_TouShi.c
文件 43451 2005-12-14 00:02 计算机图形学源代码\信科0302\3Dgraphics2.c
文件 86611 2005-12-14 00:01 计算机图形学源代码\信科0302\3Dgraphics4.c
文件 86588 2005-12-14 00:00 计算机图形学源代码\信科0302\3Dgraphics5.c
............此处省略344个文件信息
- 上一篇:图像FFT卷积
- 下一篇:C++ pca lda
相关资源
- 2008年专升本考试数据结构C语言版试题
- 计算机图形学作品vc++
- 计算机考研复试问题汇总带答案
- 计算机图形学作业-设计和实现一个图
- C++MFC源代码二维绘图工具计算机图形
- 虚拟火灾逃生模拟仿真系统
- C语言教程很全面,很详细的一本书
- 最新真正二级C语言机试300题(含填空
- 计算机图形学实验代码包括图形旋转
- opengl MFC时钟动画
- c++QT5新版画任意阶贝塞尔曲线完整工
- 华中科技大学计算机学院C语言实验报
- C++实现简单聊天应用
- 全国计算机等级考试-二级教程-C语言
- VS2017实现Tcp socket多线程通信C++
- 孔令德 计算机图形学
- vs2012 mfc程序用Socket实现两台计算机间
- MFC计算机图形学-三维图形几何变换斜
- 计算机二级C语言包过题库和软件
- 计算机图形学opengl作业
- 计算机二级C语言完整复习资料
- 全国计算机等级考试-二级教程-C语言
- 计算机二级考试模拟软件c语言
- 计算机网络课程设计,实现简单的聊
- 基于MFC编写的FTP客户端(使用VS)
- 光线跟踪 入门级 项目代码
- 浙江省历年计算机二级c语言真题及答
- 计算机名校复试上机题
- 计算机图形学实践教程随书源代码
- 杭电计算机学院复习资料
评论
共有 条评论