• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            天地之靈學(xué)習(xí)小組
            我們學(xué)習(xí)小組的OpenGL學(xué)習(xí)筆記 大家一定要互相折磨呀~~
            posts - 150,  comments - 156,  trackbacks - 0
            我想我還是太心急了,總靜不下心來慢慢的一行一行的讀代碼。也可能是太長了,以前最多也就寫一二百行。
            又把出問題的那部分分成好幾個函數(shù)來寫,還是有問題,而且十分莫名的是我總覺得都是對的可是它就是錯的,崩潰了都。
            怎么辦呢怎么辦呢怎么辦呢……好心急,進(jìn)展這么慢,又不得不調(diào)試,還有好多該干的事……

            補充,就在寫完這篇日志的瞬間,顯示覆蓋問題解決,咔咔
            posted @ 2008-10-28 22:00 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(102) | 評論 (0)編輯 收藏

            以前只知道,每隔固定一段時間都要重新畫一遍屏幕,屏幕里面很簡單,記分牌、瓶子及其內(nèi)部、醫(yī)生、幫助面板。就這么多而已,以前認(rèn)為要畫醫(yī)生、藥片、蟲子只要調(diào)用畫它們的函數(shù)就行了,誠然實際上也就是這樣,但具體函數(shù)里面是什么就不曉得了。今天的操作系統(tǒng)課上想到了這個問題。記得剛開始看OpenGL的時候遇到了一個叫點畫線和點畫面的問題,當(dāng)時只注意了一下點畫線,點畫面就被我一帶而過。今天想到要畫出具有真實感的醫(yī)生、藥片、蟲子不妨就采用點畫面來試一試。
            自己的思路是這個樣子的,就拿畫藥丸的函數(shù)drawPill(/*參數(shù)*/)來說吧,首先有個static int pill_mask[](應(yīng)該是個全局的,免得每次畫的時候都要重新讀取圖像)數(shù)組里面存放了藥片各個點是否有顏色的信息,至于數(shù)組里面的信息是從哪里來的,當(dāng)然是從一幅圖中讀進(jìn)來的嘍。讀取圖像的函數(shù)可以在網(wǎng)上找到的嘛。每次調(diào)用本函數(shù)之前先設(shè)置好顏色信息,就是要畫什么顏色的藥丸,然后使用glEnable(GL_POLYGON_STIPPLE);來啟動點畫面模式,void glPolygonStipple(const GLubyte *pill_mask[]);來指定用什么樣的什么什么(不知道專業(yè)術(shù)語,想必這樣說大家也能理解),然后就可以畫多邊形了,當(dāng)然畫出來的就是一個非常可愛的藥丸啦,最后不要忘記關(guān)閉點畫面模式glDisable(GL_POLYGON_STIPPLE);啦,順便附上測試用的小圖一張(在畫圖程序里面隨便搞的,有點像蟲子了)。
                                                         

            下面就是我的那個頑皮的小程序了,還請各位哥哥姐姐弟弟妹妹看一看,順便改一改,先謝謝啦!

            #include <stdio.h>
            #include 
            <stdlib.h>
            #include 
            <gl/glut.h>
            static GLubyte pill_mask[50];
            void read_pill()
            {
                FILE 
            *fp;
                fp 
            = fopen("mask.jpg""rb");
                
            if!fp )
                    exit(
            0);
                
            if( fseek(fp, -(int)sizeof(pill_mask), SEEK_END) )
                    exit(
            0);
                
            if!fread(pill_mask, sizeof(pill_mask), 1, fp) )
                    exit(
            0);
                fclose(fp);
            }

            void drawPill(void)
            {
                glClear(GL_COLOR_BUFFER_BIT);
                glEnable(GL_POLYGON_STIPPLE);
                glPolygonStipple(pill_mask);
                glRectf(
            -0.5,-0.5,0.5,0.5);
                glDisable(GL_POLYGON_STIPPLE);
                glFlush();
            }

            int main(int argc,char** argv)
            {
                glutInit(
            &argc,argv);
                glutInitDisplayMode(GLUT_SINGLE
            |GLUT_RGB);
                glutInitWindowSize(
            200,200);
                glutInitWindowPosition(
            300,300);
                glutCreateWindow(
            "Mask");
                glShadeModel(GL_FLAT);
                glutDisplayFunc(drawPill);
                glutMainLoop();
                
            return 0;
            }

            沒有注釋的,還請多擔(dān)待

            posted @ 2008-10-28 21:17 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(248) | 評論 (0)編輯 收藏
                   計算機(jī)操作系統(tǒng)課又給我開了,悄悄地寫完了圖形老師的貝塞爾,思路應(yīng)該很清晰,最后滿懷期待地敲完了代碼,發(fā)現(xiàn)我的主函數(shù)是那么的漂亮,居然都是子函數(shù)拼成的,很有節(jié)奏感。但是調(diào)試之后沒出現(xiàn)任何想要看到的東西,還居然是一閃而過。由于很餓還有自認(rèn)為思路很清晰,這樣子是怎么也不會改好程序的,于是扔到了現(xiàn)在。
                     
            充實的計算機(jī)操作系統(tǒng)課我還把二維圖形三維化的思路給整理了出來,自認(rèn)為思路也是很清晰的,列出了我需要知道的知識。嗨,說白了就是知道應(yīng)該怎么走下去了,發(fā)現(xiàn)了一條自認(rèn)為走下去就會有成果的路。但是我覺得我的思路沒有什么特點,大家都應(yīng)該能想到的,但是為什么還沒有做出來,很可能這個思路就是不成熟的。唉還有還有,在想多元函數(shù)的圖像表示的時候想到了多維,后來看圖形老師的講義,發(fā)現(xiàn)了分形幾何里面有多維。很神奇,但是回來搜啊搜的看啊看的都弄不明白,還百度百科還中國科普,講得還是那么云里霧里的。看來這確實是一門高深的知識。還有拓?fù)洌@個也沒弄明白,不小心看到了混沌學(xué),哈哈,一種歸來的感覺。
                     
            哦,看題目了沒有?拓?fù)涫鞘裁捶中斡质鞘裁矗繌V博的大牛們指導(dǎo)一下吧,糾結(jié)的數(shù)學(xué)問題。
            posted @ 2008-10-28 20:13 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(230) | 評論 (3)編輯 收藏

            雖然飄姐姐說。。這些都可以由顯卡來解決。。但是還是覺得好帥。。可愛的作者~~~

            package{
            import flash.display.Sprite;
            import flash.text.TextField;
            import flash.events.MouseEvent;
            import ascb.util.NumberUtilities;
            public class NumbersAndMath extends Sprite{
             var _die:Sprite;
             var _value:uint;
             public function NumbersAndMath( ){
              _die= new Sprite( );
              addChild(_die);
              _die.addEventListener(MouseEvent.CLICK,rollDie);
              rollDie(null);
              }
              private function rollDie(event:MouseEvent):void {
               _value=NumberUtilities.random(1, 6);
               _die.graphics.clear( );
               _die.graphics.lineStyle( );
               _die.graphics.beginFill(0xFFFFFF);
               _die.graphics.drawRect(0,0,50,50);
               _die.graphics.endFill( );
               _die.graphics.beginFill(0x000000);
               if(_value==1|| _value== 3|| _value== 5){
                _die.graphics.drawCircle(25,25,4);
                }
                if(_value==2|| _value== 3|| _value== 4|| _value ==5 || _value== 6)
                {
                 _die.graphics.drawCircle(11,11, 4);
                 _die.graphics.drawCircle(39,39,4);
                 }
                 if(_value==4|| _value== 5|| _value== 6){
                  _die.graphics.drawCircle(11,39,4);
                  _die.graphics.drawCircle(39,11, 4);
                  }
                  if(_value==6){
                   _die.graphics.drawCircle(11,25,4);
                   _die.graphics.drawCircle(39,25,4);
            }
            }
            }
            }
            posted @ 2008-10-27 22:07 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(214) | 評論 (0)編輯 收藏

            最近都糊涂了我,從昨天晚上就一直認(rèn)為周一上午就兩節(jié)課,中午的時候倒在床上呼呼大睡,準(zhǔn)備睡醒之后就去實驗室搞搞明天圖形學(xué)的上機(jī),結(jié)果還是被殿下從睡夢中叫醒的,還以為是要去實驗室的。洗了個臉,出門不經(jīng)意間一瞟,竟然發(fā)現(xiàn)同班同學(xué)要去上課,大駭了一下,突然想到下午要上課的。隨匆匆忙忙去上課,好在就遲到了一小小會。
            今天晚上本來是想繼續(xù)寫代碼的,誠然也寫了一點,但是突然發(fā)現(xiàn)思緒了,那函數(shù)要寫在哪個類里面都不知道了,想想還是再次系統(tǒng)地想一想吧。下面就是本次的一點小想法,以后大體上就會按照這個想法寫下去了。

            瓶子(class Bottle)的功能:

            1.       首先是每一關(guān),瓶子負(fù)責(zé)生成一個地圖(根據(jù)關(guān)數(shù)來生成地圖)這個當(dāng)然是由構(gòu)造函數(shù)來實現(xiàn)的啦Bottle(int level)

            2.       根據(jù)MVC原理(自己這樣理解的,錯了請指正),每當(dāng)藥片移動一下(一段固定的時間)就要重新繪制一片瓶子drawBottle(),格子的每一行每一列都遍歷一邊,根據(jù)各自的屬性把格子畫出來;還有就是把格子的邊框畫出來,包括記分牌以及醫(yī)生的形象。上面提到了固定時間,至于這個固定時間貌似是由Timer什么的來控制的,但是現(xiàn)在還不知道,暫且放一下吧。

            3.       要想畫瓶子,瓶子是由空格(這個就不用額外畫了)、蟲子、藥片組成那就要有兩個函數(shù)drawMedicine(Color color[2],位置以及其他參數(shù)),drawBug(Color color,位置以及其他參數(shù))

            4.       還要判斷一下當(dāng)前關(guān)是不是要掛掉了,如果掛掉了的話,重新初始化本關(guān),貌似不用否則了。die()至于什么時候調(diào)用還是一個問題,有待于進(jìn)一步考慮。咦,好像多此一舉,根本就不要用這么一個函數(shù)嗎,直接一個布爾性的變量不就搞定了嘛,真是笨啊我,那時開始,后來還是聰明了一點的嘛。

            藥片(Class Medicine)的功能:

            1.         首先要生成一個藥片吧Medicine(),默認(rèn)的是水平放置的,至于是什么顏色的那就隨機(jī)了,怎么個隨機(jī)法,老實說暫時我也不知道,等寫到的時候再說。這個寫的僅僅是個具有指導(dǎo)意義的那個什么什么東西的。

            2.         要想移動藥片首先要判斷他是否可以移動,如果不可以的話那就算了。關(guān)鍵在于是否可以移動,那怎樣判斷呢?想想還是比較麻煩的,干脆還是分類討論一下吧,canMoveRight(參數(shù))canMoveLeft(參數(shù))canMoveDown(還是參數(shù))只要它還是活動藥片就會一直往下移動,直到它變成非活動藥片。至于什么時候變成非活動藥片那就要判斷一下了,即判斷它的下面是不是空的(EMPTY)

            3.         如果藥片可以移動藥片會一直往下移動的要判斷

            4.         藥片是會旋轉(zhuǎn)的,并不是什么時候都可以旋轉(zhuǎn)

            OpenGL編程要有點OpenGL的味道吧

            1.         首先是要有個初始化的函數(shù)吧,init()至于初始化什么到時候再說。

            2.         其次還是要有個什么reshape()函數(shù)的,對這個函數(shù)還不是很明白(學(xué)了沒幾天OpenGL 就來編瑪麗醫(yī)生,我的命好苦啊!(天外來音:命苦也要好好寫))

            3.         display()這個函數(shù)是少不了了,負(fù)責(zé)來調(diào)用Bottle里面的drawBottle()函數(shù)。

            4.         keyboard()函數(shù)也是少不了啦,專門負(fù)責(zé)控制當(dāng)前活動藥片移動的方向。

            5.         估計這個就是OpenGL里面最最重要的一個函數(shù)了,哈哈就是main函數(shù),main函數(shù)還是比較簡單的,對窗口進(jìn)行初始化一下然后就是調(diào)用各個已經(jīng)寫好了的函數(shù)啦。這就是瑪麗醫(yī)生的結(jié)尾了,看起來好簡單哦,但是我知道寫起來肯定不會有這么簡單,今天寫的是這么多字,估計到時候就要寫這么多行了。還沒寫過這么多行的一個大程序,好期待哦。加油王冠,加油everyone!

             

            posted @ 2008-10-27 21:34 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(133) | 評論 (0)編輯 收藏
              看到了某大牛的留言,于是下了一個VC++2005,起初不會用,但是我英文是看得懂的,哦,我的金山詞霸是看得懂的,但是它還是錯誤。然后就百度了一個教程,發(fā)現(xiàn)下下來之后,純屬掛羊頭賣狗肉,然后按了F1,吭哧了吭哧英語之后發(fā)現(xiàn)原來不應(yīng)該直接Start Debugging的,應(yīng)該Start Without Debugging 的,神奇,其實還是不明白這個句子,什么叫開始Debug和不Debug就開始呢?要開始什么呢。神奇的英語。總之以后就這么辦就好了,順便說一句,我很喜歡這個界面,感覺很舒服,就是很舒服的感覺。

                   貼今天那個20面體,雖然都是書上的,但是確實很不一般,我不能明白這是怎么思考的,它的那一堆數(shù)組里面的東西是怎么出來的,而且又是憑什么這么排列的。又是一個神奇的東西。還是不貼了,出問題了。

                   哦,還有我那個傳說中的玩物喪志的RPGXP游戲,在懷疑中文版有Bug之后從官網(wǎng)下了日文版的和英文版的,發(fā)現(xiàn)日文對我來說是亂碼,英文對我來說是代碼。后來之前出現(xiàn)的問題就解決掉了,好像也不關(guān)漢化的事情。現(xiàn)在任務(wù)分配下去了,我做那個大圖,工程啊。最后說一句,這個在技術(shù)上就是喪志,但是它的戰(zhàn)略意義是深遠(yuǎn)的。

                   好像沒什么了,我得看看圖形學(xué)了,明天上機(jī)有作業(yè),啊哦。

                   對了,這兩天也在看OpenGL的書,我們的瑪麗用到它的地方基本上能定位在書的哪一頁了,下面就是算法了,哦,不是算法,是代碼。某一天我會撿起瑪麗的。乖哦~~好變態(tài)的“哦”。。

            posted @ 2008-10-27 21:06 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(104) | 評論 (1)編輯 收藏
            調(diào)試過程中出現(xiàn)的問題以及解決辦法
            1、一運行就RE
            原因:忘記調(diào)用init()函數(shù),導(dǎo)致兩個類沒有實例化,直接讀取野指針。
            解決:在主函數(shù)里調(diào)用init()函數(shù)。
            2、發(fā)現(xiàn)每次生成的蟲子都是一樣的,主函數(shù)里雖然srand了,卻沒有達(dá)到初始化隨機(jī)種子的效果。
            原因:我傻了,先init()才srand()。= =||
            解決:先srand()再init()。
            3、發(fā)現(xiàn)實際生成的蟲子數(shù)總比應(yīng)該生成的少那么一兩個。
            原因:我只檢測了生成的隨機(jī)蟲子是否越界和四周是否構(gòu)成同顏色的三行或者三列,忘記檢測本位置是否原本有蟲子導(dǎo)致后生成的符合要求的蟲子將原生成的蟲子覆蓋。
            解決:ok()函數(shù)里多加一條判斷語句
                    if ( b_grid_type[x][y] == WORM ) return false;
            4、按向右鍵也是向左移動。
            原因:case RIGHT:里面本應(yīng)++d_x寫成了--d_x;
            解決:>.<
            ×××5、下落時RE。
            還未解決嗚嗚嗚嗚嗚嗚
            6、生成的藥丸總是青色的。
            原因:drawCapsule()函數(shù)忘記_setColor()了。
            解決:給drawCapsule()函數(shù)增加一個顏色參數(shù)并設(shè)置顏色。
            7、按一下左會向左移動很多很多格。
            還未解決嗚嗚嗚嗚嗚嗚


            posted @ 2008-10-27 21:01 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(139) | 評論 (0)編輯 收藏
            今天布置了實驗室。。沒看書。。記過一次。。
            posted @ 2008-10-26 22:05 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(118) | 評論 (0)編輯 收藏
                 摘要: 它它它它它……我不說啥了,效果圖群里發(fā)過了,就是那么丑,還是RE。我有信心干掉它,靠我自己的力量,一點一點的。我是一棵自卑的菜,膠州產(chǎn)的三里河大白菜。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->  1...  閱讀全文
            posted @ 2008-10-26 20:51 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(215) | 評論 (4)編輯 收藏
            我什么時候才能吃上牛肉面啊~~敢問大牛們,當(dāng)年也吃面?
            這是一個不健全的程序,由于我偉大的
            VC經(jīng)常罷工,這個程序調(diào)起來是那么的填堵,所以我就沒繼續(xù)調(diào)下去。這是書上畫20面體的程序,然后我加了頭和尾,當(dāng)然是加錯了,所以說不健全。貼上去,然后我就可以強(qiáng)行關(guān)掉VC了,以免丟失。

            #define X .525731112119133606

            #define Z .850650808352039932 

            #include<GL/glut.h>

            void display()

            {

                   static GLfloat vdata[12][3]={

                   {-X,0.0,Z},{X,0.0,Z},{-X,0.0,-Z},{X,0.0,-Z},

                   {0.0,Z,X},{0.0,Z,-X},{0.0,-Z,X},{0.0,-Z,-Z},

                   {Z,X,0.0},{-Z,X,0.0},{Z,-X,0.0},{-Z,-X,0.0}

                 };

             

                   static GLunit tindices[20][3]={

                   {1,4,0},{4,9,0},{4,5,9},{8,5,4},{1,8,4},

                   {1,10,8},{10,3,8},{8,3,5},{3,2,5},{3,7,2},

                   {3,10,7},{10,6,7},{6,11,7},{6,0,11},{6,1,0},

                   {10,1,6},{11,0,9},{2,11,9},{5,2,9},{11,2,7}

               };

             

                  int i;

             

                  glBegin(GL_TRIANGLES);

                  for(i=0;i<20;i++)

                  {

                        glVertex3fv(&vdata[tindices[i][0]][0]);

                        glVertex3fv(&vdata[tindices[i][1]][0]);

                        glVertex3fv(&vdata[tindices[i][2]][0]);

                  }

                  glEnd();

                  glFlush();

            }

             

            void init()

            {

                   glClearColor(0.0,0.0,0.0,0.0);

                   glShadeModel(GL_FLAT);

            }

            int main(int argc,char** argv)

            {

                  glutInit(&argc,argv);

                  glutInitDisplayMode(GLUT_STINGLE|GLUT_RGB);

                  glutInitWindowSize(350,150);

                  glutCreatWindow(argv[0]);

                  init();

                  glutDisplayFunc(display);

                  glutMainLoop();

                  return 0;

            }

            posted @ 2008-10-26 20:36 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(274) | 評論 (4)編輯 收藏
            僅列出標(biāo)題
            共15頁: First 5 6 7 8 9 10 11 12 13 Last 

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(6)

            隨筆分類(149)

            隨筆檔案(150)

            同道中人

            搜索

            •  

            積分與排名

            • 積分 - 47473
            • 排名 - 471

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品无码一区二区三区日韩| 欧美激情精品久久久久久| 99久久夜色精品国产网站| 日韩精品久久无码中文字幕| 久久国产色AV免费看| 久久一本综合| 丁香狠狠色婷婷久久综合| 色诱久久av| 狠狠狠色丁香婷婷综合久久五月| 久久久99精品一区二区| 国内精品伊人久久久久av一坑| 久久av免费天堂小草播放| 麻豆成人久久精品二区三区免费| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久精品人妻一区二区三区| 久久久无码精品亚洲日韩京东传媒 | 久久久无码精品亚洲日韩按摩 | 久久综合久久伊人| 久久精品中文騷妇女内射| 久久无码人妻精品一区二区三区| 无码AV中文字幕久久专区| 亚洲AⅤ优女AV综合久久久| 麻豆精品久久精品色综合| 国产69精品久久久久APP下载 | AA级片免费看视频久久| 亚洲∧v久久久无码精品| 无码精品久久一区二区三区| 国产成人精品综合久久久| 国内精品久久久久久野外| 中文字幕热久久久久久久| 伊人久久亚洲综合影院| 亚洲а∨天堂久久精品| 久久天天躁狠狠躁夜夜2020老熟妇| 天天久久狠狠色综合| 久久夜色精品国产亚洲| 久久精品国产亚洲欧美| 久久久久久免费一区二区三区| 99久久精品国产麻豆| 国产一级做a爰片久久毛片| 久久香蕉一级毛片| 91亚洲国产成人久久精品网址|