⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 图形处理算法合集3:包括图形处理、帧缓存技术、渲染、矩阵运算、建模方法
💻 C
字号:
/* main.c: sample driver for partition module. * Copyright (c) Norman Chin */#include <stdio.h>#include <assert.h>#include <malloc.h>#include "GraphicsGems.h"#include "partition.h"static FACE *getFace(/* void */);static void dumpFace(/* FACE *face, char *string */);int main(){   FACE *inputFace;   FACE *faceOn, *faceNeg, *facePos;    FACE *faceOn2, *faceNeg2, *facePos2;   inputFace= getFace(); dumpFace(inputFace,"input");   /* partition unit square on XY plane about origin */   partitionFaceWithPlane(1.0,0.0,0.0,0.0,&inputFace, 			  &faceOn,&faceNeg,&facePos);    assert(inputFace == NULL_FACE);   dumpFace(faceNeg,"negative side"); dumpFace(facePos,"positive side");   /* now partition positive piece's upper left corner */   inputFace= facePos;   partitionFaceWithPlane(0.707,-0.707,0.0,0.0,&inputFace,			  &faceOn2,&faceNeg2,&facePos2);   assert(inputFace == NULL_FACE);   dumpFace(faceNeg2,"negative side"); dumpFace(facePos2,"positive side");   /* code to free all faces & their vertices goes here */   return(0); } /* main() */static void dumpFace(face,string)FACE *face;char *string;{   VERTEX *vtrav;   if (face == NULL_FACE) {      (void) printf("%s is empty\n",string);      return;   }   (void) printf("begin dump of %s at 0x%x\n",string,face);   for (vtrav= face->vhead; vtrav != NULL_VERTEX; vtrav= vtrav->vnext) {      (void) printf("   0x%x: (%lf %lf %lf)\n",vtrav,		    vtrav->xx,vtrav->yy,vtrav->zz);   }   (void) printf("end %s\n",string);} /* dumpFace() */static FACE *getFace(){   /* list of vertices for unit square on XY plane about origin */   static VERTEX square[]= {       {1.0,-1.0,0.0, NULL_VERTEX},       {1.0, 1.0,0.0, NULL_VERTEX},       {-1.0, 1.0,0.0, NULL_VERTEX},       {-1.0,-1.0,0.0, NULL_VERTEX},       {1.0,-1.0,0.0, NULL_VERTEX}   };   VERTEX *v1, *v2, *v3, *v4, *v5;   FACE *newFace;   v1= NEWTYPE(VERTEX); assert(v1 != NULL_VERTEX); *v1= square[0];   v2= NEWTYPE(VERTEX); assert(v2 != NULL_VERTEX); *v2= square[1];   v3= NEWTYPE(VERTEX); assert(v3 != NULL_VERTEX); *v3= square[2];   v4= NEWTYPE(VERTEX); assert(v4 != NULL_VERTEX); *v4= square[3];   v5= NEWTYPE(VERTEX); assert(v5 != NULL_VERTEX); *v5= square[4];   /* chain vertices */   v1->vnext= v2; v2->vnext= v3; v3->vnext= v4; v4->vnext= v5;    /* attach vertex list to a face */   newFace= NEWTYPE(FACE); assert(newFace != NULL_FACE); newFace->vhead= v1;   return(newFace);} /* getFace() */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -