(五)移動(dòng)圖形(Adding Motion)

原文:https://developer.android.com/training/graphics/opengl/motion.html

Drawing objects on screen is a pretty basic feature of OpenGL, but you can do this with other Android graphics framwork classes, including Canvas and Drawable objects. OpenGL ES provides additional capabilities for moving and transforming drawn objects in three dimensions or in other unique ways to create compelling user experiences.
繪制圖形只是OpenGL的基本功能乌逐,用其他的Android 繪圖類(如Canvas和Drawable)也能實(shí)現(xiàn)同樣的效果朵逝。OpenGL ES能提供更好的用戶體驗(yàn)。OpenGL ES能夠在三維空間或者其他獨(dú)特的方式移動(dòng)和變化圖形恶守。

In this lesson, you take another step forward into using OpenGL ES by learning how to add motion to a shape with rotation.
這一節(jié),進(jìn)一步學(xué)習(xí)如何用OpenGL ES移動(dòng)圖形眠砾。

Rotate a Shape

旋轉(zhuǎn)圖形

Rotating a drawing object with OpenGL ES 2.0 is relatively simple. In your renderer, create another transformation matrix (a rotation matrix) and then combine it with your projection and camera view transformation matrices:
用OpenGL ES旋轉(zhuǎn)圖形是小菜一碟校焦。在render中,創(chuàng)建另一個(gè)轉(zhuǎn)換矩陣用來旋轉(zhuǎn)全谤,然后和投影和相機(jī)矩陣進(jìn)行結(jié)合。

private float[] mRotationMatrix = new float[16];
public void onDrawFrame(GL10 gl) {
    float[] scratch = new float[16];

    ...

    // Create a rotation transformation for the triangle
    long time = SystemClock.uptimeMillis() % 4000L;
    float angle = 0.090f * ((int) time);
    Matrix.setRotateM(mRotationMatrix, 0, angle, 0, 0, -1.0f);

    // Combine the rotation matrix with the projection and camera view
    // Note that the mMVPMatrix factor *must be first* in order
    // for the matrix multiplication product to be correct.
    Matrix.multiplyMM(scratch, 0, mMVPMatrix, 0, mRotationMatrix, 0);

    // Draw triangle
    mTriangle.draw(scratch);
}

If your triangle does not rotate after making these changes, make sure you have commented out the GLSurfaceView.RENDERMODE_WHEN_DIRTY setting, as described in the next section.
如果做了以上的改變?nèi)切芜€是沒有旋轉(zhuǎn)爷贫,檢查一下是否注釋了下一節(jié)會(huì)提到的GLSurfaceView.RENDERMODE_WHEN_DIRTY這一句认然。

Enable Continuous Rendering

開啟連續(xù)繪制

If you have diligently followed along with the example code in this class to this point, make sure you comment out the line that sets the render mode only draw when dirty, otherwise OpenGL rotates the shape only one increment and then waits for a call to requestRender() from the GLSurfaceView container:
如果你按教程走到這里,確定你已經(jīng)把繪制模式改為連續(xù)繪制模式漫萄,不然OpenGL只會(huì)把圖形旋轉(zhuǎn)一個(gè)角度之后就不再旋轉(zhuǎn)了卷员,只有等待調(diào)用GLSurfaceView的requestRender() 方法時(shí)才會(huì)繼續(xù)旋轉(zhuǎn)。

public MyGLSurfaceView(Context context) {
    ...
    // Render the view only when there is a change in the drawing data.
    // To allow the triangle to rotate automatically, this line is commented out:
    //setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
}

Unless you have objects changing without any user interaction, it’s usually a good idea have this flag turned on. Be ready to uncomment this code, because the next lesson makes this call applicable once again.
如果沒有用戶輸入的情況下腾务,圖形仍會(huì)改變毕骡,那么就關(guān)閉這個(gè)模式,否則就開啟岩瘦。下一節(jié)中未巫,我們會(huì)用到這行代碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末启昧,一起剝皮案震驚了整個(gè)濱河市叙凡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌密末,老刑警劉巖握爷,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宰啦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡饼拍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門田炭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來师抄,“玉大人,你說我怎么就攤上這事教硫∵端保” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵瞬矩,是天一觀的道長(zhǎng)茶鉴。 經(jīng)常有香客問我,道長(zhǎng)景用,這世上最難降的妖魔是什么涵叮? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮伞插,結(jié)果婚禮上割粮,老公的妹妹穿的比我還像新娘。我一直安慰自己媚污,他們只是感情好舀瓢,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耗美,像睡著了一般京髓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上商架,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天堰怨,我揣著相機(jī)與錄音,去河邊找鬼甸私。 笑死诚些,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的皇型。 我是一名探鬼主播诬烹,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼弃鸦!你這毒婦竟也來了绞吁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤唬格,失蹤者是張志新(化名)和其女友劉穎家破,沒想到半個(gè)月后颜说,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡汰聋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年门粪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烹困。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡玄妈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出髓梅,到底是詐尸還是另有隱情拟蜻,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布枯饿,位于F島的核電站酝锅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏奢方。R本人自食惡果不足惜搔扁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望袱巨。 院中可真熱鬧阁谆,春花似錦、人聲如沸愉老。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嫉入。三九已至焰盗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咒林,已是汗流浹背熬拒。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留垫竞,地道東北人澎粟。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像欢瞪,于是被迫代替她去往敵國(guó)和親活烙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 我發(fā)表了一篇新博文:CPU的七種尋址方式我的博客地址:不如懷念
    江流兒可愛喲閱讀 707評(píng)論 0 0
  • 雨后新泥黏小徑遣鼓,縷縷暗香濃啸盏。 流連湖畔覓芳蹤,裊娜藕花紅骑祟。 粼粼水波托碧葉回懦,翠色映芙蓉气笙。 何事招惹無情風(fēng),憐花瓣怯晕,...
    西江月兒閱讀 615評(píng)論 12 13
  • 固定資產(chǎn)的特殊問題總結(jié) 一潜圃、工程物資的細(xì)節(jié)區(qū)分 購(gòu)進(jìn)一批專用于安裝設(shè)備的物資 計(jì)入“工程物資”; 進(jìn)項(xiàng)稅可以抵扣舟茶;...
    劉鍵閱讀 910評(píng)論 0 0
  • 特大聲明:本文復(fù)制于實(shí)驗(yàn)樓網(wǎng)站 Matplotlib 是一個(gè)優(yōu)秀的 2D&3D 圖形庫(kù)秉犹, 主要功能是生成科學(xué)用圖,...
    狼牙戰(zhàn)士閱讀 2,816評(píng)論 0 7
  • 做一個(gè)快樂的女子 珍惜擁有稚晚,懂得放棄 熱愛生活也善待自己 用陽(yáng)光的心態(tài)去面對(duì)世界 笑容會(huì)讓你綻放最美麗的自己 《...
    墨默秋千閱讀 634評(píng)論 3 0