OpenGL编程轻松入门之使用颜色
2014-05-02 17:51
375 查看
通过上一节的例子我们已经知道一些简单的使用颜色的方法。这一节我们进一步讲讲颜色的使用。
例2:本例子使用颜色引索模式绘制8个不同颜色的球体,如图二所示。阅读此例时,请主要关注函数palette和DrawColotFans。
glIndex设置当前颜色索引。参数为当前颜色索引。本例中glIndexd 函数的参数j+1对应palette中auxSetOneColor函数中的i+1,auxSetOneColor函数的后三个函数制定对应的颜色,颜色值由变量rgb[8][3]定义。
例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/ p 4000 rofile.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); } |
相关文章推荐
- 莱斯大学Python课程Mini-project#5 - Memory
- JAVA内存分析中的两道简单小题
- Visual C++设计超强仿QQ自动伸缩窗口
- c语言的cgi编译全过程
- 六种简单方法提升ASP.NET Web API性能
- mac GitHub 打不开怎么办?
- Java对象的序列化与反序列化
- 数据库在C++程序中使用方法
- 基于任务的异步编程
- 淘宝PHP SDK 2.0 剔除 lotusphp框架
- matlab 找数组中非0数的行和列
- asp 文件上传(ASPUpload组件上传)
- Java和C#输入输出流方法
- 简单分析ThreadPoolExecutor实现的Android版和JDK版
- java中的递归方法
- 【C++】1. 创建C++工程
- 送给用 EditPlus 或 Programmer's Notepad 等编辑器写代码的朋友!
- 安卓NFC编程之前台发布系统
- Actor编程模型——akka
- C语言itoa()函数