通过上一节的例子我们已经知道一些简单的使用颜色的方法。这一节我们进一步讲讲颜色的使用。

  例2:本例子使用颜色引索模式绘制8个不同颜色的球体,如图二所示。阅读此例时,请主要关注函数palette和DrawColotFans。

  glIndex设置当前颜色索引。参数为当前颜色索引。本例中glIndexd 函数的参数j+1对应palette中auxSetOneColor函数中的i+1,auxSetOneColor函数的后三个函数制定对应的颜色,颜色值由变量rgb[8][3]定义。

#include <GL/glut.h>
#include <GL/glaux.h> 
void init(void)
{
 glClearColor(1.0,1.0,1.0,1.0);
 glClear(GL_COLOR_BUFFER_BIT);
 glShadeModel(GL_SMOOTH);
}

void palette(void)
{
 GLint i;
 static GLfloat rgb[8][3]={{1,0,0},{1,0,0.5},{1,0,1},
{0,0,1},{0,1,1},{0,1,0},{1,1,0},{1,0.5,0}};

 for(i = 0;i<8;i++)
 {
  auxSetOneColor(i+1,rgb[i][0],rgb[i][1],rgb[i][2]);//设置颜色
 }
}

profile.yahoo.com/6FUG3TSOMSITXJZMLMXVQ7KGGQ/
profile.yahoo.com/CJMWZL4ZNPWTZXPE4JCNYV3I54/
profile.yahoo.com/HS6YYCHMO7ID6OZV7NZ7L5FKSE/
profile.yahoo.com/3XGXYPZT3THKPVQ4TXQHCKHMXY/
profile.yahoo.com/GSNGQ2AINGGHGYHE4KY5MWXE2Y/
profile.yahoo.com/74RCKJTYJPA6NKLJI6KFMDNOUI/
profile.yahoo.com/WII2LSXESPSRKXWLMIKLHRGASQ/
profile.yahoo.com/JDVQEWPPQ66PUK47BZO7676MSE/
profile.yahoo.com/KQ73BQMAD42JLAW4TQYFPZHYME/
profile.yahoo.com/A3TBERS7KPAATC6M2MUDIEPPHE/
profile.yahoo.com/ME3RBTE7XV7H7OISWPBJBU4Q2A/
profile.yahoo.com/UUCTVBCHN5P3O22GSY2Y4LS3KM/
profile.yahoo.com/5DD42LIOWIVEC3C3LLVB4IR6L4/
profile.yahoo.com/YJTU4JNJCMGNSJA4BROIV5367E/
profile.yahoo.com/ACH7ALTJKXM3ZMTUH37TJMM4HU/
profile.yahoo.com/UNIRWHYVEDBUOUH7LWSM3KLCYI/
profile.yahoo.com/OLM6OCA6DCJW34V5RFQHB5S3U4/
profile.yahoo.com/5A3NBCAMAN5GHARA44FIPLAPE4/
profile.yahoo.com/IDZAQHNCQKXQU6267CN4AGOVMA/
profile.yahoo.com/FHMIPWZ5CQ2IGX3V2JGXSIWURU/
profile.yahoo.com/NF3376KORFLV5QWIEULSFTRLLQ/
profile.yahoo.com/VCZ2W47EE6V6GL7CYYXXYXR2NA/
profile.yahoo.com/KZ3GGY3HHEZ4O3Z73DS3KY7OAI/
profile.yahoo.com/JXCJSHKPCPVXBOQ7J534QFVINQ/
profile.yahoo.com/3EOKGCUUHMX22KIAI7GML5AUCI/
profile.yahoo.com/FUO6MOEDGUSYPEOIJUHQJPXU7U/
profile.yahoo.com/F6BNCL7UA4N2QU4VU7TQS4GMLE/
profile.yahoo.com/GKR4HD2WEEDOSAOEBLLVPT4BGM/
profile.yahoo.com/F4DSPOKAULYUURHT5Q2GHGRP74/
profile.yahoo.com/CAPYUDHYGK4T5OC376VAIQF6JU/
profile.yahoo.com/RL73T5NKKMIA5ATI4UOXVNYJCE/
profile.yahoo.com/PYFFJ2FNCM72O7GP7JSVLEHCTY/
profile.yahoo.com/YV4MGP3T7PLUT5Q66JR7B6NIBU/
profile.yahoo.com/Z6UG6LBRTTF7ADW4437WKUDXGU/
profile.yahoo.com/ZAWGBC2HZG3G5S5IBOVTVMNJ2A/
profile.yahoo.com/IEOM46P5K6FMQVAEFUL2735D6U/
profile.yahoo.com/JHLVQLSGI36ARJGGVCQOHYPDQI/
profile.yahoo.com/3YAUGQDSUIOIUNT7VJJTJYTJZE/
profile.yahoo.com/GEJCGLX3RSX3CFXZN7ZQ45V5RE/
profile.yahoo.com/SWFT4BQFW5YV652VO3AAR7GVY4/
profile.yahoo.com/QEWPERHSO5CGAZIW26TUPK7I3U/
profile.yahoo.com/JK26UMRCUXDVDMY6BYNVOOJYUE/
profile.yahoo.com/Y5YATSDLQWP2DY2ZRYUU3YVGP4/
profile.yahoo.com/WSRRX26XRWVJJTE5LU35MY5RLA/
profile.yahoo.com/CNA5EDOG7RO4LXDA5UBF3VGW2Y/
profile.yahoo.com/QRLN2PRXNB7CSDE6Q3766RUHVQ/
profile.yahoo.com/NYOIMY4DNKTLKEX2KA4XYNUWFA/
profile.yahoo.com/35IZIGSXVKERCC6RBFEBSSKKJ4/
profile.yahoo.com/VU6OYHDP5HAEJKYS5T3IALIALM/
profile.yahoo.com/J6NTXRNENOJ3TU47SYQ4PAHNOM/
profile.yahoo.com/Z5QEHIJUQ47BBSF4P3RQ6344DY/
profile.yahoo.com/VILU55D3NKY5NUXNOQC6H573LE/
profile.yahoo.com/3R63NVDVAF4EDRGYZA7BIVAONI/
profile.yahoo.com/EI2TDGGO55AFBU6XWSQPS7LYOA/
profile.yahoo.com/3EFNWKN37P2723HJW5LVKOPWBA/
profile.yahoo.com/MAXO4UZIPIWUTCND6ASAKUJYXM/
profile.yahoo.com/EZSBG26PW76LSBEVG3MZRG27XM/
profile.yahoo.com/YMK3J3VRN5LBUPYKV3NJHRPPHQ/
profile.yahoo.com/SVTB5BBL5ONCCFPJKAG4QJ44RM/
profile.yahoo.com/M5NIB6Q6BWRLYNRSVD2L2MNZJ4/
profile.yahoo.com/762NN2FKDNPQSVJLCMW6UJBHDI/
profile.yahoo.com/C6SLU4RABJPNBTKAEE6WAHJSQM/
profile.yahoo.com/7U43VP2ZEKEQ76S53UUNORXDMQ/
profile.yahoo.com/SU3FWXSQEFFU2YEY3PXWLIHBMQ/
profile.yahoo.com/JZ64JDPIYNDW7FVNMPXYNFQFKY/
profile.yahoo.com/FWBCGTP53CM7Z3SUZZS7GS3XX4/
profile.yahoo.com/EKNBCOQEFJBPFUPDUXCMXERD7E/
profile.yahoo.com/MGUXIKNVGJI62IHIEPB3MJ7HQU/
profile.yahoo.com/USMC6OT4BWG3YVZBGCOJKSWSHA/
profile.yahoo.com/VYKK4W6SLKVZXG5GCOPJQAP75U/
profile.yahoo.com/WMWS4L4MBNDU5NUPHBMKDY45QY/
profile.yahoo.com/PIS3KRCPGYH74IYX3MGQB5U6JM/
profile.yahoo.com/XF4NZ542TO7BS5MOGATNG3USVI/
profile.yahoo.com/UEM55PGXUN4MP4FECICJNORYPU/
profile.yahoo.com/4CVJTJ4ELRIV7X6HHZGRA4CR3Q/
profile.yahoo.com/WCBQZRW6U6XEZ3HBIOI3WIYFSQ/
profile.yahoo.com/RPHOWRTWXIVOHJDCHLZYIKR2WE/
profile.yahoo.com/X357ROFRNJNRYMZJMGEXNHTVWI/
profile.yahoo.com/5MOBSZ3CHMLO53CLEASO3EGQDY/
profile.yahoo.com/GCF4SSTXUX3RD24LTH54HIAOIE/
profile.yahoo.com/56UPEH6Z3QATUESZTB7CMTYTUQ/
profile.yahoo.com/OEOJYUVCVHBSKL74VIPNW4N5F4/
profile.yahoo.com/LFJP45USYC47T2DXSGZLUAJZYU/
profile.yahoo.com/VDX7NO4JA6DIG3I4PZTJ7EVV6U/
profile.yahoo.com/HKLGNUMAOIDKTMV3CDYGRJEXCA/
profile.yahoo.com/JTT74DDVUROQTMBCRLELTBAN7M/
profile.yahoo.com/L65HKC24BEMM74GDDQFHXP2A4M/
profile.yahoo.com/SLCNYRLUCPZR7BQPJ7XHWYHM5Q/
profile.yahoo.com/Q34AC6HMZ3REC5Q7ARCWZZQGRI/
profile.yahoo.com/4ALSGIV44UICTUOIY74NQT6IV4/
profile.yahoo.com/LDRKGLODVYLCCC5GBEQ7LVGULE/
profile.yahoo.com/OOMLENV3IGWPEZHTRQS3NDBDXM/
profile.yahoo.com/2YMAYSDEMMPJRRTC2W6SALQPCE/
profile.yahoo.com/TGY5XVMVNWVQUMKZRUHVY76OYY/
profile.yahoo.com/44DMJIDUXTTRDQ7ZNTV3RXAYRI/
profile.yahoo.com/UQ4IYBETUY5YXQXRERUE54P7EI/
profile.yahoo.com/RXNACSDGQGOZIR63XQLUBN4LFI/
profile.yahoo.com/KFUX4FW3GD4JRUQ4UV2XBDV7DU/
profile.yahoo.com/RKBV43WS3WPC3KIMJQ4IGTYQRQ/
profile.yahoo.com/BRSQ3P4ZBEFEPGWXECRPDOZ3WU/
profile.yahoo.com/O2GJWZX5WK45ALUQ77FPE5WSGA/
profile.yahoo.com/5A5WTCXH5XGOW3D4CJAAF6VB2M/
profile.yahoo.com/UVY3SDDUDNJNEDKFG45QZ6532M/
profile.yahoo.com/DMVBIHULCBR4OAFZWFALF6JRDA/
profile.yahoo.com/5BO466WFLLC25UJAYPLAWIHTFM/
profile.yahoo.com/UIVTAWNS6LXIE7JOJW5BW5DT2E/
profile.yahoo.com/ZCQXGQIPM53ZX6NGZAEW5DJKAA/
profile.yahoo.com/LOHZRZDG5F7JJLGLUN3MTPFZUU/
profile.yahoo.com/A3L7T52LXHCCSOWOJ6WFYW37QE/
profile.yahoo.com/J7MSLMKKAYAPLO5NDTMC4XIXYA/
profile.yahoo.com/LKTQ4EKICBLVXWYXTXUD3ASBVI/
profile.yahoo.com/LOR2BH4DF6WASERGGND6EBKPZM/
profile.yahoo.com/II3E7O5RQ7GZ7XPEYF2AJWDCQA/
profile.yahoo.com/DYDQM24RJSI3WSDDWGLGNCUK4A/
profile.yahoo.com/YKODTTBDER7IID6B4CJVYCTJWE/
profile.yahoo.com/UND4IWNLWFAYRJNKV5UATMUPBQ/
profile.yahoo.com/37HPFCZRAM6WF3UPOGJLK54O54/
profile.yahoo.com/4B62WGM4KZMJA4FHWNFGG2OBH4/
profile.yahoo.com/TMVRYKMFRYNPBAY5CILZS7722A/
profile.yahoo.com/MRCEISRAL4JHMPSPGGIGNOSC3M/
profile.yahoo.com/WZMZ7345NIHCMYZK2UUE2EFMYM/
profile.yahoo.com/BNQ33W6FUPMLVJJVK4XIYCSUIA/
profile.yahoo.com/KNOK4EDWXXTDLD4GBTMNCIQVIE/
profile.yahoo.com/VJA6FXHG6C6KATX53SC7OCPM6Q/
profile.yahoo.com/G6TN6WN6NIJYRSQUENJT7QCNVA/
profile.yahoo.com/KMD2WJYSQW7YRDTU5Q7HB3JHYQ/
profile.yahoo.com/ZSIZEEVM3ZJJ2V45EX7CC5522Y/
profile.yahoo.com/R7TQZRFG3BPDLPFNAGWL55FLDY/
profile.yahoo.com/YDL3WOIAXTUFAHI7LPT6TAYX34/
profile.yahoo.com/337ZFW6LOECP4X7LM3HY2MNLN4/
profile.yahoo.com/3QVEWKA4LKH3GB25ZNJHRDYI34/
profile.yahoo.com/5NDFYSLKXL6U4W7PLS63T63ZWY/
profile.yahoo.com/SMV54Y77QHXMLGAJZBFPIPSH24/
profile.yahoo.com/MUBWEHALLEHV4LR5O32GEZWAUE/
profile.yahoo.com/GQ32APIGQLJQVTSMC7XPJ6K47Q/
profile.yahoo.com/LQSUPOYMSOHDU6WQHK5HX3X6ZI/
profile.yahoo.com/3WUBNZCD7PUMCFUL7NKHZKAL3Y/
profile.yahoo.com/75TLCBFPSYFL2T42WPJ2NHTVRU/
profile.yahoo.com/IM7JPUX4OD2U6RCEDGN7QHQ74U/
profile.yahoo.com/VONWYO4GBGOQHJEC233TLVSHTE/
profile.yahoo.com/D5WP6VAWLFOHX5N7ECXCHCIBII/
profile.yahoo.com/YE6LROZT5FCB6NOYGEGL4MK3IU/
profile.yahoo.com/IBUIGON6CSXS3DTWJ2T7GIZR44/
profile.yahoo.com/VXA44ZSHTOFUJES4IBVMACL3MU/
profile.yahoo.com/SLVJ3TSMUL4AUVFQ7XPFIVRANA/
profile.yahoo.com/IB66CD5OSQ25D6HJYEBU7Q6JNU/
profile.yahoo.com/QNQKN6CV3NZHBJ6ZPSUDO3TMEM/
profile.yahoo.com/HO5HVR2TNKEHRV5HJFHHRTWMKA/
profile.yahoo.com/LJWJB6T5KNTTTLTN7SZQXKI2U4/
profile.yahoo.com/IK36FB3THEXIDK4S6YQOCRE3IY/
profile.yahoo.com/2SLY3CP3MOSHI7XB55GTFDVJH4/
profile.yahoo.com/IV7XJBLDKMB3UPJ4WGUYLPETQY/
profile.yahoo.com/KCHSQ4K7XBCD2RDVSI7DM7XJVU/
profile.yahoo.com/XGB6WOYS3CJ5EZXGXFRZIDKG6I/
profile.yahoo.com/BJ2YUMSQ742A37SZZAPHKNOYF4/
profile.yahoo.com/QBCMNI5UZ3L3XQ467ACEEXP2IY/
profile.yahoo.com/6ML4W232GAILTMTAKRULN32OQ4/
profile.yahoo.com/GYLZ5YBUWXK7VBIGIPQMXYEKHE/
profile.yahoo.com/YE355A7JS3CVE2XTZ6RRR5YTGU/
profile.yahoo.com/CL5FD4BWVR3HN46BCGPUUU4DLY/
profile.yahoo.com/N5K6PXKV3NOZLJEFNSSAGJEO5E/
profile.yahoo.com/YGLYTMUF5WGQIFL7NRWKADTDKM/
profile.yahoo.com/NHNQWTKUMFLEPFEZHZIKMJ5OZM/
profile.yahoo.com/MIZNEDMV62FSJDCCJYHNHD5Y4U/
profile.yahoo.com/3LKFYMWF33DWR4DCTIMNWKUGWY/
profile.yahoo.com/ABIJHVOWO7CUIOURWIGHPQ747U/
profile.yahoo.com/BTV5CWUM737QFZBUJ6K34AG4FI/
profile.yahoo.com/IL52HCONDNOWO25AEFMF3CHI4Y/
profile.yahoo.com/MPOTRKOJHWAEOS4KT2GY43SUSU/
profile.yahoo.com/NXEZDCEEGLIHFLJ3FRV6MZKILM/
profile.yahoo.com/WSPLRRSF7XB4EAHBNP3K4PMT54/
profile.yahoo.com/QQE7EKSOLFZRDSDKQHNTFKMLZU/
profile.yahoo.com/A7VZHQL6JEQVD7RZ3TFASQHYQQ/
profile.yahoo.com/PCTOLW55PAJ2IS76ELUCHMWB3A/
profile.yahoo.com/ESSVIGYULLRJBTNXLBONLZZTJI/
profile.yahoo.com/T73OV63XUR5DIH3HXPQJVUUR54/
profile.yahoo.com/WM5ACXPIWUXR3H7B5YB2C3DMKQ/
profile.yahoo.com/I5K2D3USGY6E6ZP6KQACPZ3VTQ/
profile.yahoo.com/ESRXM6P42GJPWJHWXABFSMGEPE/
profile.yahoo.com/UW5CPWKVHXD7NUNCNHAMK7HE3E/
profile.yahoo.com/7ZYAJKJVPXFVSRVUPAYV3Y4JVM/
profile.yahoo.com/VENORY56OMWF3B4CG252522POM/
profile.yahoo.com/MWYQNSPNKKXLTLPRGAS7SHBNF4/
profile.yahoo.com/REZJJWPT4L6WIFDOLTRI44EYTY/
profile.yahoo.com/WPJQ435V4M7JJ22GQLYXZUPNFA/
profile.yahoo.com/JD427N3F43RQ42IFWQULKLKGOE/

void DrawColorFans(void)
{
 GLint j;

 glTranslatef(-15,-15,0);
 for(j = 0;j<8;j++)
 {
  glIndexd(j+1);//设置当前颜色索引
  /*在不同位置绘制球体*/
  glTranslatef(j,j-1,0);
  glutSolidSphere(1,20,20);
 }
}

void CALLBACK display(void)
{
 palette();
 DrawColorFans();
 glFlush();
}

void CALLBACK reshape(GLsizei w,GLsizei h)
{
 glViewport(0,0,w,h);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 gluPerspective(100,1,1,20);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 glTranslatef(0,0,-15);
}
void main()
{
 auxInitDisplayMode(AUX_SINGLE|AUX_INDEX);
 auxInitPosition(100,100,500,500);
 auxInitWindow("draw the color sphere");
 init();
 auxReshapeFunc(reshape);
 auxMainLoop(display);
}

OpenGL编程轻松入门之使用颜色相关推荐

  1. OpenGL编程轻松入门(一)

    OpenGL编程轻松入门(一) (由同事黄燕创作)   本文介绍了有关OpenGL的基本知识,主要涉及颜色.绘制几何体.坐标变换.堆栈操作.显示列表.光照和材质.纹理映射.特殊效果.曲面和曲线的绘制. ...

  2. OpenGL编程轻松入门(四)

    1.         曲面和曲线 前面我们讲了如何绘制平面的图形,这一节我们学习如何绘制曲线和曲面. 例10:绘制一个曲面,本程序使用二维求值器绘制一个曲面.本例中也有一些特殊效果的操作. #incl ...

  3. OpenGL编程轻松入门之显示例表

    利用显示列表,我们们可以减少重复的劳动.我们可以从例5中得到体会. 例5:绘制六个彩色的三角形,如图六. #include <windows.h> #include <GL/glut ...

  4. OpenGL编程轻松入门之二次几何体

    这一章我们讲一下二次几何物体的绘制.二次几何物体的绘制有几种不同的方式,在本例中可以看出不同的绘制方式的不同效果,如图十五所示. 例13:本例使用GLU库函数绘制了四个几何物体,分别为圆柱体.球体.圆 ...

  5. opengl编程从入门到精通-hello,window

    窗口 程序中使用的glad.c和glad.h源码: 链接: https://pan.baidu.com/s/1TmtM7O8J4aTnfP6elIgs7g 密码: g5go github源码仓库 op ...

  6. C++ STL编程轻松入门基础

    C++ STL编程轻松入门基础 1 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL 1.2 追根溯源:STL的历史 1.3 千丝万缕的联系 1.4 STL的不同实现版本 2 牛刀小试 ...

  7. C++ STL编程轻松入门【转载】

    1 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL "什么是STL?",假如你对STL还知之甚少,那么我想,你一定很想知道这个问题的答案,坦率地讲,要指望用短短数 ...

  8. 新手学堂:C++ STL编程轻松入门

    作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的.STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现.本教程旨在传播和普及STL的基础知识,若能借此机 ...

  9. C++ STL编程轻松入门

    作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的.STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现.本教程旨在传播和普及STL的基础知识,若能借此机 ...

最新文章

  1. Linux里面的正则表达式!
  2. Android仿QQ界面
  3. Eclipse 下新建MAVEN项目
  4. 关于小程序云开发的一些经典问题处理
  5. 技术的深度与广度,该如何取舍?
  6. Ubuntu16.04用源安装Nginx+PHP5.6+MySQL5.6
  7. leetcode 134. 加油站
  8. GitHub政府用户破万:开源成重塑政府新手段
  9. Arduino笔记-ESP8266模块实现https远程关熄灯功能
  10. Linux more和less
  11. 国考计算机专业生报名人数,近四成岗位随便挑!2020年国考,这类专业招录人数接近一万...
  12. Windows下定时器与多线程的区别
  13. python3 -m pip install pymongo_Python3上Pymongo的SSL握手问题
  14. Excel数据导入Oracle数据库
  15. 【HTML/JS】百度地图javascriptAPI点击地图得到坐标(拾取坐标) 标签: 百度地图坐标
  16. PostGIS空间数据库SRID背景知识 - 地理坐标系(球面坐标系)和投影坐标系(平面坐标系)...
  17. C++安装失败解决办法
  18. 轻快的vim(二):插入
  19. 调用国家气象局天气接口
  20. CPU到达100%的排查

热门文章

  1. VBA之for循环使用
  2. python猜单词游戏心得_【Python】猜单词游戏
  3. 计算机二级考试时间2020年3月,2020年计算机二级3月考试时间
  4. 三、kotlin的类和对象(二)
  5. 加州理工学院宋飏老师招收机器学习全奖博士生|2023秋季
  6. 使用代理服务器+FRPC 连回家庭网络方案| 群晖 代理
  7. Android Studio 4.1.2 自定义 APP 启动图标样式步骤【APP开发之入门四】
  8. cocos creator开发微信小游戏(五)贪吃蛇大作战
  9. CoaoaChina开发者小测验常识题
  10. Microsoft Edge官方下载地址