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

📄 shapes.c

📁 计算机图形学~想必是很多人需要的~在此共享一下
💻 C
📖 第 1 页 / 共 4 页
字号:
/*    shapes.c
    Mason Woo, 1999    with modification of code by Nate Robins, 1997    Tool for teaching about OpenGL primitives.	*/#include <math.h>#include <stdio.h>#include <stdlib.h>#include <stdarg.h>#include <string.h>#include <GL/glut.h>


#pragma comment( linker, "/entry:\"mainCRTStartup\"" )  // set the entry point to be main()


typedef struct _cell {    int id;    int x, y;    float min, max;    float value;    float step;    char* info;    char* format;} cell;


#define MESSAGEY 455
cell lines[2*3+4*2] = {    { 1, 120, 60, 0.0f, 1.0f, 1.0f, 0.005f,        "Specifies red component of a color.", "%.2f" },    { 2, 180, 60, 0.0f, 1.0f, 1.0f, 0.005f,     "Specifies green component of a color.", "%.2f" },    { 3, 240, 60, 0.0f, 1.0f, 1.0f, 0.005f,     "Specifies blue component of a color.", "%.2f" },
    { 4, 120, 90, 0.0f, 200.0f, 50.0f, 1.0f,     "Specifies x component of a vertex.", "%.1f" },
    { 5, 180, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    { 6, 120, 120, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 7, 180, 120, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    { 8, 120, 150, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 9, 180, 150, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 10, 240, 150, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 11, 120, 180, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 12, 180, 180, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    { 13, 120, 210, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 14, 180, 210, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" }};

cell shadeFour[4*3+4*2] = {
    { 15, 120, 60, 0.0f, 1.0f, 1.0f, 0.005f,
        "Specifies red component of a color.", "%.2f" },
    { 16, 180, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 17, 240, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 18, 120, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 19, 180, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 20, 120, 120, 0.0f, 1.0f, 0.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 21, 180, 120, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 22, 240, 120, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 23, 120, 150, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 24, 180, 150, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 25, 120, 180, 0.0f, 1.0f, 0.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 26, 180, 180, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 27, 240, 180, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 28, 120, 210, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 29, 180, 210, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 30, 120, 240, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 31, 180, 240, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 32, 240, 240, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 33, 120, 270, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 34, 180, 270, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" }
};

cell flatFour[1*3+4*2] = {
    { 35, 120, 60, 0.0f, 1.0f, 1.0f, 0.005f,
        "Specifies red component of a color.", "%.2f" },
    { 36, 180, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 37, 240, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 38, 120, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 39, 180, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    { 40, 120, 120, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 41, 180, 120, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    { 42, 120, 150, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 43, 180, 150, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    { 44, 120, 180, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 45, 180, 180, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" }
};
cell shadeThree[3*3+3*2] = {
    { 46, 120, 60, 0.0f, 1.0f, 0.5f, 0.005f,
        "Specifies red component of a color.", "%.2f" },
    { 47, 180, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 48, 240, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 49, 120, 90, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 50, 180, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 51, 120, 120, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 52, 180, 120, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 53, 240, 120, 0.0f, 1.0f, 0.5f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 54, 120, 150, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 55, 180, 150, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 56, 120, 180, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 57, 180, 180, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 58, 240, 180, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 59, 120, 210, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 60, 180, 210, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" }
};

cell flatThree[1*3+3*2] = {
    { 61, 120, 60, 0.0f, 1.0f, 1.0f, 0.005f,
        "Specifies red component of a color.", "%.2f" },
    { 62, 180, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 63, 240, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 64, 120, 90, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 65, 180, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    { 66, 120, 120, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 67, 180, 120, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    { 68, 120, 150, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 69, 180, 150, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" }
};

cell shadeQStrip[6*3+6*2] = {
    { 70, 120, 60, 0.0f, 1.0f, 1.0f, 0.005f,
        "Specifies red component of a color.", "%.2f" },
    { 71, 180, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 72, 240, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 73, 120, 90, 0.0f, 200.0f, 25.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 74, 180, 90, 0.0f, 200.0f, 25.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 75, 120, 120, 0.0f, 1.0f, 0.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 76, 180, 120, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 77, 240, 120, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 78, 120, 150, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 79, 180, 150, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 80, 120, 180, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 81, 180, 180, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 82, 240, 180, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 83, 120, 210, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 84, 180, 210, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 85, 120, 240, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 86, 180, 240, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 87, 240, 240, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 88, 120, 270, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 89, 180, 270, 0.0f, 200.0f, 75.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 90, 120, 300, 0.0f, 1.0f, 0.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 91, 180, 300, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 92, 240, 300, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 93, 120, 330, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 94, 180, 330, 0.0f, 200.0f, 25.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 95, 120, 360, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 96, 180, 360, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 97, 240, 360, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 98, 120, 390, 0.0f, 200.0f, 175.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 99, 180, 390, 0.0f, 200.0f, 125.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" }
};

cell shadePoints[6*3+6*2] = {
    { 100, 120, 60, 0.0f, 1.0f, 1.0f, 0.005f,
        "Specifies red component of a color.", "%.2f" },
    { 101, 180, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 102, 240, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 103, 120, 90, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 104, 180, 90, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 105, 120, 120, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 106, 180, 120, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 107, 240, 120, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 108, 120, 150, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 109, 180, 150, 0.0f, 200.0f, 175.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 110, 120, 180, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 111, 180, 180, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 112, 240, 180, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 113, 120, 210, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 114, 180, 210, 0.0f, 200.0f, 200.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 115, 120, 240, 0.0f, 1.0f, 0.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 116, 180, 240, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 117, 240, 240, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 118, 120, 270, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 119, 180, 270, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 120, 120, 300, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 121, 180, 300, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 122, 240, 300, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 123, 120, 330, 0.0f, 200.0f, 75.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 124, 180, 330, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 125, 120, 360, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 126, 180, 360, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 127, 240, 360, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 128, 120, 390, 0.0f, 200.0f, 175.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 129, 180, 390, 0.0f, 200.0f, 75.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" }
};

cell tStrip[4*3+4*2] = {
    { 130, 120, 60, 0.0f, 1.0f, 0.0f, 0.005f,
        "Specifies red component of a color.", "%.2f" },
    { 131, 180, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 132, 240, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 133, 120, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 134, 180, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 135, 120, 120, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 136, 180, 120, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 137, 240, 120, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 138, 120, 150, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 139, 180, 150, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 140, 120, 180, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 141, 180, 180, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 142, 240, 180, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 143, 120, 210, 0.0f, 200.0f, 175.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 144, 180, 210, 0.0f, 200.0f, 25.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 145, 120, 240, 0.0f, 1.0f, 1.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 146, 180, 240, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 147, 240, 240, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 148, 120, 270, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 149, 180, 270, 0.0f, 200.0f, 175.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" }
};

cell tFan[4*3+4*2] = {
    { 150, 120, 60, 0.0f, 1.0f, 0.0f, 0.005f,
        "Specifies red component of a color.", "%.2f" },
    { 151, 180, 60, 0.0f, 1.0f, 0.0f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 152, 240, 60, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 153, 120, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 154, 180, 90, 0.0f, 200.0f, 50.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 155, 120, 120, 0.0f, 1.0f, 0.0f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 156, 180, 120, 0.0f, 1.0f, 0.5f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 157, 240, 120, 0.0f, 1.0f, 1.0f, 0.005f, 
    "Specifies blue component of a color.", "%.2f" },
    { 158, 120, 150, 0.0f, 200.0f, 100.0f, 1.0f, 
    "Specifies x component of a vertex.", "%.1f" },
    { 159, 180, 150, 0.0f, 200.0f, 150.0f, 1.0f, 
    "Specifies y component of a vertex.", "%.1f" },
    
    { 160, 120, 180, 0.0f, 1.0f, 0.5f, 0.005f,
    "Specifies red component of a color.", "%.2f" },
    { 161, 180, 180, 0.0f, 1.0f, 0.5f, 0.005f, 
    "Specifies green component of a color.", "%.2f" },
    { 162, 240, 180, 0.0f, 1.0f, 1.0f, 0.005f, 

⌨️ 快捷键说明

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