20.11.2016 Views

ANDROID APP

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

};<br />

0, 1, 2, 0, 2, 3, //square base<br />

0, 3, 4, // side 1<br />

0, 4, 1, // side 2<br />

1, 4, 2, // side 3<br />

2, 4, 3 // side 4<br />

ไลบรารีขั้นสูงที่ใช้ในส่วนการติดต่อกับผู้ใช้งาน<br />

141<br />

// Buffers to be passed to gl*Pointer() functions<br />

ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length*4);<br />

vbb.order(ByteOrder.nativeOrder());<br />

mVertexBuffer = vbb.asIntBuffer();<br />

mVertexBuffer.put(vertices);<br />

mVertexBuffer.position(0);<br />

ByteBuffer cbb = ByteBuffer.allocateDirect(colors.length*4);<br />

cbb.order(ByteOrder.nativeOrder());<br />

mColorBuffer = cbb.asIntBuffer();<br />

mColorBuffer.put(colors);<br />

mColorBuffer.position(0);<br />

}<br />

mIndexBuffer = ByteBuffer.allocateDirect(indices.length);<br />

mIndexBuffer.put(indices);<br />

mIndexBuffer.position(0);<br />

public void draw(GL10 gl) {<br />

gl.glFrontFace(GL10.GL_CW);<br />

gl.glVertexPointer(3, GL10.GL_FIXED, 0, mVertexBuffer);<br />

gl.glColorPointer(4, GL10.GL_FIXED, 0, mColorBuffer);<br />

gl.glDrawElements(GL10.GL_TRIANGLES, 18, GL10.GL_UNSIGNED_BYTE,<br />

mIndexBuffer);<br />

}<br />

}<br />

private IntBuffer mVertexBuffer;<br />

private IntBuffer mColorBuffer;<br />

private ByteBuffer mIndexBuffer;<br />

ปิรามิดจะประกอบด้วยมุมจำนวน 5 มุม โดย 4 มุมจะอยู่ที่ฐานจัดวางเป็นรูปสี่เหลี่ยมจัตุรัส และ<br />

อีก 1 มุมอยู่ตรงส่วนยอด เราจะอ้างอิงจุดศูนย์กลางของรูปทรงนี้ด้วยค่า (0,0,0)<br />

สีที่แสดงบนรูปทรงนั้นจะสัมพันธ์กับตำแหน่งของมุมของรูปทรง ณ ตอนนั้น เราจะกำหนดให้<br />

มุมตรงส่วนฐานมีสีม่วงและมุมตรงส่วนยอดมีสีขาว และใช้ไลบรารีในการไล่สีดังกล่าว ซึ่งการสร้าง<br />

รูปทรงและการไล่สีของรูปทรงแบบนี้จะทำให้ภาพที่แสดงผลมีลักษณะเป็น 3 มิติยิ่งขึ้น

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!