资源简介
计算机图形学实验(哈尔滨工程大学)
共有4次上机实验的源代码
用c++编写的
共有4次上机实验的源代码
用c++编写的
代码片段和文件信息
#include
#include
#include
#define MAXSF 4
#define MAXP 3
#define MAXVT 4
#define STARTX 200
#define STARTY 200
#define DOWN 20480
#define RIGHT 19712
#define LEFT 19200
#define ESC 283
typedef struct Node
{
float x;
float y;
float z;
}Ver;
Ver surface[MAXSF][MAXP]vertex[MAXVT];
int hideFlag[MAXSF]surColor[MAXSF]={BLUEYELLOWREDWHITE};
void init();/*初始化图形设备*/
void setVert(); /*设置顶点*/
void setSuf(); /*设置面*/
int isHide(Ver ver[3]); /*判断前后面*/
void switchXYZ(int xyz); /*绕X、Y、Z旋转,转换顶点坐标*/
void delBlock();/*消除遮挡的面*/
void paint();/*显示图形*/
void end();/*结束程序*/
void main()
{
int ikeyxyz;
init();
setVert();
do
{
setSuf();
for(i = 0; i < MAXSF; i++)
hideFlag[i]=isHide(surface[i]);
delBlock();
paint();
key=bioskey(0);
xyz=0;
switch(key)
{
case DOWN:
xyz = 3;
break;
case LEFT:
xyz = 2;
break;
case RIGHT:
xyz = 1;
break;
case ESC:
end();
default:
break;
}
if(xyz)
{
cleardevice();
switchXYZ(xyz);
}
}while(1);
}
void init()
{
int drivermode;
driver=DETECT;
mode=0;
initgraph(&driver&mode““);
setbkcolor(GREEN);
}
void setVert()
{
vertex[0].x=80vertex[0].y=20vertex[0].z=20;
vertex[1].x=80vertex[1].y=80vertex[1].z=20;
vertex[2].x=20vertex[2].y=80vertex[2].z=20;
vertex[3].x=40vertex[3].y=60vertex[3].z=80;
}
void setSuf() /*是否是这里的问题?*//*必须保证都是逆时针*/
{
surface[0][0]=vertex[0]surface[0][1]=vertex[2]surface[0][2]=vertex[1];
surface[1][0]=vertex[1]surface[1][1]=vertex[2]surface[1][2]=vertex[3];
surface[2][0]=vertex[0]surface[2][1]=vertex[3]surface[2][2]=vertex[2];
surface[3][0]=vertex[0]surface[3][1]=vertex[1]surface[3][2]=vertex[3];
}
int isHide(Ver ver[3])
{
Ver NPQ;
Ver V={001};
float flag;
P.x = ver[1].x - ver[0].x;
P.y = ver[1].y - ver[0].y;
P.z = ver[1].z - ver[0].z;
Q.x = ver[2].x - ver[1].x;
Q.y = ver[2].y - ver[1].y;
Q.z = ver[2].z - ver[1].z;
N.x = P.y * Q.z - Q.y * P.z;
N.y = P.z * Q.x - Q.z * P.x;
N.z = P.x * Q.y - Q.x * P.y;
flag = N.x * V.x + N.y * V.y + N.z * V.z;
if(flag > 0)
return 0;
return 1;
}
void switchXYZ(int xyz)
{
Ver temp;
int i;
for(i = 0; i < MAXVT; i++)
{
if(xyz == 1)
{
temp.x = vertex[i].x;
temp.y = -vertex[i].z;
temp.z = vertex[i].y;
}
else if(xyz == 2)
{
temp.x = vertex[i].z;
temp.y = vertex[i].y;
temp.z = -vertex
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1809 2007-09-28 08:19 计算机图形实验\1\DUAN.C
文件 5835 2000-08-26 10:33 计算机图形实验\1\HOMEWORK.C
文件 1305 2007-10-12 08:31 计算机图形实验\3\BSPLINE.C
文件 1217 2007-10-12 08:19 计算机图形实验\3\BEZIER.C
文件 2803 2007-09-28 06:49 计算机图形实验\上机实验2\task2.c
文件 3327 2007-09-28 06:49 计算机图形实验\上机实验2\task218.c
文件 1610 2007-09-28 06:50 计算机图形实验\上机实验2\task237.c
文件 4571 2007-11-01 19:04 计算机图形实验\4\homework411.c
目录 0 2007-11-03 15:18 计算机图形实验\1
目录 0 2007-11-03 15:19 计算机图形实验\3
目录 0 2007-11-03 15:19 计算机图形实验\上机实验2
目录 0 2007-11-03 15:28 计算机图形实验\4
目录 0 2009-02-15 18:58 计算机图形实验
文件 1809 2007-09-28 08:19 计算机图形实验\计算机图形实验\上机实验1\DUAN.C
文件 5835 2000-08-26 10:33 计算机图形实验\计算机图形实验\上机实验1\HOMEWORK.C
文件 2803 2007-09-28 06:49 计算机图形实验\计算机图形实验\上机实验2\task2.c
文件 3327 2007-09-28 06:49 计算机图形实验\计算机图形实验\上机实验2\task218.c
文件 1610 2007-09-28 06:50 计算机图形实验\计算机图形实验\上机实验2\task237.c
文件 1217 2007-10-12 08:19 计算机图形实验\计算机图形实验\上机实验3\BEZIER.C
文件 1305 2007-10-12 08:31 计算机图形实验\计算机图形实验\上机实验3\BSPLINE.C
文件 4571 2007-11-01 19:04 计算机图形实验\计算机图形实验\上机实验4\homework411.c
目录 0 2007-11-03 15:18 计算机图形实验\计算机图形实验\上机实验1
目录 0 2007-11-03 15:19 计算机图形实验\计算机图形实验\上机实验2
目录 0 2007-11-03 15:19 计算机图形实验\计算机图形实验\上机实验3
目录 0 2007-11-03 15:28 计算机图形实验\计算机图形实验\上机实验4
目录 0 2009-02-15 18:59 计算机图形实验\计算机图形实验
----------- --------- ---------- ----- ----
44954 26
- 上一篇:汇编语言课程设计案例精编
- 下一篇:简单计算器的实现(数据结构 修正版)
相关资源
- 计算机图形学-全.rar
- 7-Uath茶壶
- 计算机图形学考试试卷试题6套含3套的
- GPU精粹1-中文版.pdf《GPU精粹:实时图形
- 计算机图形学 基于3D图形开发技术
- 3D游戏与计算机图形学中的数学方法
- 虚拟现实技术文献英文
- 华南理工大学软件学院计算机图形学
- GPU+编程与CG+语言之阳春白雪下里巴人
- 计算机图形学实验 opengl实现太阳系运
- 中国科学技术大学计算机图形学大作
- 计算机图形学的实习
- 计算机图形大作业opengl-物联网.rar
- 计算机图形学 z-buffer
- 计算机图形学经典论文计算机图形学
- 计算机图形学几何工具算法详解
- 广东工业大学 各年 计算机图形学最全
- 交互式计算机图形学 基于WEBGL的自顶
- 清华大学版计算机图形学
- 计算机图形学 边界定义的8连通区域
- 实验一 OpenGL 程序设计基础
- 计算机图形学与几何造型导论 英文版
- 计算机图形学基础教程.docx
- 广东工业大学计算机图形学实验.rar
- 计算机图形学 OpenGL实验源码+实验文档
- 计算机图形学的设计作业。。OpenGl源
- 计算机图形学-基于OpenGL的3D迷宫漫游
- 用opengl绘制的兔子
- objdata.zip
- 《计算机图形学课程设计》源代码
评论
共有 条评论