ภาพรวม
ฟังก์ชันเหล่านี้ช่วยให้คุณจัดการกับเมทริกซ์สี่เหลี่ยมจัตุรัสที่มีลําดับชั้น 2x2, 3x3 และ 4x4 ได้ ซึ่งมีประโยชน์อย่างยิ่งสำหรับการเปลี่ยนรูปแบบกราฟิก และเข้ากันได้กับ OpenGL
เราใช้ดัชนีฐาน 0 สำหรับแถวและคอลัมน์ เช่น องค์ประกอบสุดท้ายของ rs_matrix4x4 จะอยู่ที่ (3, 3)
 RenderScript ใช้เมทริกซ์แบบคอลัมน์หลักและเวกเตอร์ตามคอลัมน์  การเปลี่ยนรูปแบบเวกเตอร์จะทําโดยการคูณเวกเตอร์ในภายหลัง เช่น (matrix * vector) ตามที่ระบุโดย rsMatrixMultiply()
 หากต้องการสร้างเมทริกซ์การเปลี่ยนรูปแบบที่ทำการแปลง 2 ครั้งพร้อมกัน ให้คูณเมทริกซ์ต้นทาง 2 รายการ โดยให้การเปลี่ยนรูปแบบแรกเป็นอาร์กิวเมนต์ด้านขวา  เช่น หากต้องการสร้างเมทริกซ์การเปลี่ยนรูปแบบที่ใช้การเปลี่ยนรูปแบบ s1 ตามด้วย s2 ให้เรียกใช้ rsMatrixLoadMultiply(&combined, &s2, &s1)
ซึ่งมาจาก s2 * (s1 * v) ซึ่งก็คือ (s2 * s1) * v
เรามีฟังก์ชัน 2 รูปแบบในการสร้างเมทริกซ์การเปลี่ยนรูปแบบ ได้แก่ Transformation ของ rsMatrixLoad และ Transformation ของ rsMatrix รูปแบบแรกจะจัดเก็บเมทริกซ์การเปลี่ยนรูปแบบไว้ในอาร์กิวเมนต์แรก ส่วนหลังจะแก้ไขเมทริกซ์การเปลี่ยนรูปแบบที่มีอยู่เพื่อให้การเปลี่ยนรูปแบบใหม่เกิดขึ้นก่อน เช่น หากคุณเรียกใช้ rsMatrixTranslate() ในเมทริกซ์ที่มีการสเกลแล้ว เมทริกซ์ที่ได้เมื่อนำไปใช้กับเวกเตอร์จะทำการแปลก่อนแล้วจึงทำการสเกล
สรุป
| ฟังก์ชัน | |
|---|---|
| rsExtractFrustumPlanes | คำนวณระนาบฟรัสตัม | 
| rsIsSphereInFrustum | ตรวจสอบว่าทรงกลมอยู่ในระนาบทรงกรวยหรือไม่ | 
| rsMatrixGet | รับองค์ประกอบ 1 รายการ | 
| rsMatrixInverse | หาอินเวอร์สเมทริกซ์ในตำแหน่ง | 
| rsMatrixInverseTranspose | เปลี่ยนรูปแบบและสลับที่ของเมทริกซ์ | 
| rsMatrixLoad | โหลดหรือคัดลอกเมทริกซ์ | 
| rsMatrixLoadFrustum | โหลดเมทริกซ์การฉายภาพกรวย | 
| rsMatrixLoadIdentity | โหลดเมทริกซ์ข้อมูลประจำตัว | 
| rsMatrixLoadMultiply | คูณเมทริกซ์ 2 รายการ | 
| rsMatrixLoadOrtho | โหลดเมทริกซ์การฉายภาพออร์โธกราฟิก | 
| rsMatrixLoadPerspective | โหลดเมทริกซ์การฉายภาพด้วยมุมมอง | 
| rsMatrixLoadRotate | โหลดเมทริกซ์การหมุน | 
| rsMatrixLoadScale | โหลดเมทริกซ์การปรับขนาด | 
| rsMatrixLoadTranslate | โหลดเมทริกซ์การแปล | 
| rsMatrixMultiply | คูณเมทริกซ์ด้วยเวกเตอร์หรือเมทริกซ์อื่น | 
| rsMatrixRotate | ใช้การหมุนกับเมทริกซ์การเปลี่ยนรูปแบบ | 
| rsMatrixScale | ใช้การปรับขนาดกับเมทริกซ์การเปลี่ยนรูปแบบ | 
| rsMatrixSet | ตั้งค่าองค์ประกอบ 1 รายการ | 
| rsMatrixTranslate | ใช้การเปลี่ยนรูปแบบกับเมทริกซ์การเปลี่ยนรูปแบบ | 
| rsMatrixTranspose | สลับตําแหน่งเมทริกซ์ | 
ฟังก์ชัน
rsExtractFrustumPlanes : คำนวณระนาบขอบเขตการมองเห็น
| void rsExtractFrustumPlanes(const rs_matrix4x4* viewProj, float4* left, float4* righ, float4* top, float4* bottom, float4* near, float4* far); | เพิ่มใน API ระดับ 24 | 
| void rsExtractFrustumPlanes(const rs_matrix4x4* viewProj, float4* left, float4* right, float4* top, float4* bottom, float4* near, float4* far); | นำออกจาก API ระดับ 24 ขึ้นไป | 
พารามิเตอร์
| viewProj | เมทริกซ์ที่จะดึงเครื่องบินออกมา | 
|---|---|
| ซ้าย | เครื่องบินด้านซ้าย | 
| ขวา | เครื่องบินที่ถูกต้อง | 
| ด้านบน | เครื่องบินด้านบน | 
| ด้านล่าง | เครื่องบินด้านล่าง | 
| บริเวณใกล้ๆ | ใกล้เครื่องบิน | 
| ไกล | เครื่องบินที่อยู่ไกล | 
| righ | 
คํานวณระนาบทรงกระบอก 6 ระนาบจากเมทริกซ์การฉายภาพ
rsIsSphereInFrustum : ตรวจสอบว่าทรงกลมอยู่ในระนาบรูปกรวยหรือไม่
| bool rsIsSphereInFrustum(float4* sphere, float4* left, float4* right, float4* top, float4* bottom, float4* near, float4* far); | 
พารามิเตอร์
| ทรงกลม | float4 ที่แสดงทรงกลม | 
|---|---|
| ซ้าย | เครื่องบินด้านซ้าย | 
| ขวา | เครื่องบินที่ถูกต้อง | 
| ด้านบน | เครื่องบินด้านบน | 
| ด้านล่าง | เครื่องบินด้านล่าง | 
| บริเวณใกล้ๆ | ใกล้เครื่องบิน | 
| ไกล | เครื่องบินที่อยู่ไกล | 
แสดงผลเป็น "จริง" หากทรงกลมอยู่ภายในระนาบทรงกรวย 6 ระนาบ
rsMatrixGet : รับองค์ประกอบเดียว
| float rsMatrixGet(const rs_matrix2x2* m, uint32_t col, uint32_t row); | |
| float rsMatrixGet(const rs_matrix3x3* m, uint32_t col, uint32_t row); | |
| float rsMatrixGet(const rs_matrix4x4* m, uint32_t col, uint32_t row); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะดึงองค์ประกอบ | 
|---|---|
| คอลัมน์ | คอลัมน์แบบนับจาก 0 ขององค์ประกอบที่จะดึงข้อมูล | 
| แถว | แถวขององค์ประกอบที่จะดึงข้อมูลโดยนับจาก 0 | 
แสดงผลองค์ประกอบเดียวของเมทริกซ์
คําเตือน: ลําดับของพารามิเตอร์คอลัมน์และแถวอาจไม่เป็นไปตามที่คาดไว้
rsMatrixInverse : เปลี่ยนเมทริกซ์ให้เป็นรูปแบบย้อนกลับ
| bool rsMatrixInverse(rs_matrix4x4* m); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะหาอินเวอร์ส | 
|---|
แสดงค่า "จริง" หากผนวกเมทริกซ์สลับกันได้สําเร็จ
rsMatrixInverseTranspose : เปลี่ยนค่าเมทริกซ์ให้เป็นค่าย้อนกลับและเปลี่ยนค่าเมทริกซ์
| bool rsMatrixInverseTranspose(rs_matrix4x4* m); | 
พารามิเตอร์
| m | ตารางเพื่อแก้ไข | 
|---|
ระบบจะเปลี่ยนรูปแบบเมทริกซ์ก่อนแล้วจึงเปลี่ยนรูปแบบกลับ แสดงค่า "จริง" หากหาอินเวอร์สเมทริกซ์ได้สําเร็จ
rsMatrixLoad : โหลดหรือคัดลอกเมทริกซ์
| void rsMatrixLoad(rs_matrix2x2* destination, const float* array); | |
| void rsMatrixLoad(rs_matrix2x2* destination, const rs_matrix2x2* source); | |
| void rsMatrixLoad(rs_matrix3x3* destination, const float* array); | |
| void rsMatrixLoad(rs_matrix3x3* destination, const rs_matrix3x3* source); | |
| void rsMatrixLoad(rs_matrix4x4* destination, const float* array); | |
| void rsMatrixLoad(rs_matrix4x4* destination, const rs_matrix2x2* source); | |
| void rsMatrixLoad(rs_matrix4x4* destination, const rs_matrix3x3* source); | |
| void rsMatrixLoad(rs_matrix4x4* destination, const rs_matrix4x4* source); | 
พารามิเตอร์
| ปลายทาง | เมทริกซ์ที่จะตั้งค่า | 
|---|---|
| อาร์เรย์ | อาร์เรย์ของค่าที่จะตั้งค่าเมทริกซ์ อาร์เรย์เหล่านี้ควรมีความยาว 4, 9 หรือ 16 รายการ ทั้งนี้ขึ้นอยู่กับขนาดของเมทริกซ์ | 
| แหล่งข้อมูล | เมทริกซ์แหล่งที่มา | 
ตั้งค่าองค์ประกอบของเมทริกซ์จากอาร์เรย์ของตัวเลขทศนิยมหรือจากเมทริกซ์อื่น
 หากโหลดจากอาร์เรย์ ตัวเลขทศนิยมควรอยู่ในลําดับแถวตามลําดับ เช่น องค์ประกอบ a
row 0, column 0 ควรอยู่ก่อน ตามด้วยองค์ประกอบ at
row 0, column 1 ฯลฯ
หากโหลดจากเมทริกซ์และแหล่งที่มามีขนาดเล็กกว่าปลายทาง ระบบจะเติมองค์ประกอบของเมทริกซ์เอกลักษณ์ในส่วนที่เหลือของปลายทาง เช่น การโหลด rs_matrix2x2 ลงใน rs_matrix4x4 จะให้ผลดังนี้
| m00 | m01 | 0.0 | 0.0 | 
| m10 | m11 | 0.0 | 0.0 | 
| 0.0 | 0.0 | 1.0 | 0.0 | 
| 0.0 | 0.0 | 0.0 | 1.0 | 
rsMatrixLoadFrustum : โหลดเมทริกซ์การฉายภาพกรวย
| void rsMatrixLoadFrustum(rs_matrix4x4* m, float left, float right, float bottom, float top, float near, float far); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะตั้งค่า | 
|---|---|
| ซ้าย | |
| ขวา | |
| ด้านล่าง | |
| ด้านบน | |
| บริเวณใกล้ๆ | |
| ไกล | 
 สร้างเมทริกซ์การฉายภาพกรวยตัด ซึ่งจะเปลี่ยนรูปกล่องที่ระบุโดยระนาบการตัด 6 ระนาบ left, right, bottom, top, near, far
หากต้องการใช้การฉายนี้กับเวกเตอร์ ให้คูณเวกเตอร์ด้วยเมทริกซ์ที่สร้างขึ้นโดยใช้ rsMatrixMultiply()
rsMatrixLoadIdentity : โหลดเมทริกซ์เอกลักษณ์
| void rsMatrixLoadIdentity(rs_matrix2x2* m); | |
| void rsMatrixLoadIdentity(rs_matrix3x3* m); | |
| void rsMatrixLoadIdentity(rs_matrix4x4* m); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะตั้งค่า | 
|---|
ตั้งค่าองค์ประกอบของเมทริกซ์เป็นเมทริกซ์เอกลักษณ์
rsMatrixLoadMultiply : คูณเมทริกซ์ 2 รายการ
| void rsMatrixLoadMultiply(rs_matrix2x2* m, const rs_matrix2x2* lhs, const rs_matrix2x2* rhs); | |
| void rsMatrixLoadMultiply(rs_matrix3x3* m, const rs_matrix3x3* lhs, const rs_matrix3x3* rhs); | |
| void rsMatrixLoadMultiply(rs_matrix4x4* m, const rs_matrix4x4* lhs, const rs_matrix4x4* rhs); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะตั้งค่า | 
|---|---|
| lhs | เมทริกซ์ด้านซ้ายของผลิตภัณฑ์ | 
| rhs | เมทริกซ์ที่ถูกต้องของผลิตภัณฑ์ | 
 ตั้งค่า m เป็นผลิตภัณฑ์เมทริกซ์ของ lhs * rhs
 หากต้องการรวมเมทริกซ์การเปลี่ยนรูปแบบ 4x4 2 รายการ ให้คูณเมทริกซ์การเปลี่ยนรูปแบบที่ 2 ด้วยเมทริกซ์การเปลี่ยนรูปแบบที่ 1  เช่น หากต้องการสร้างเมทริกซ์การเปลี่ยนรูปแบบที่ใช้การเปลี่ยนรูปแบบ s1 ตามด้วย s2 ให้เรียกใช้ rsMatrixLoadMultiply(&combined, &s2, &s1)
คำเตือน: เวอร์ชันก่อน 21 ไม่รองรับการจัดเก็บผลลัพธ์กลับไปยังเมทริกซ์ด้านขวา และจะทำให้เกิดลักษณะการทำงานที่ไม่ระบุ ให้ใช้ rsMatrixMulitply แทน เช่น แทนที่จะใช้ rsMatrixLoadMultiply (&m2r, &m2r, &m2l) ให้ใช้ rsMatrixMultiply (&m2r, &m2l) rsMatrixLoadMultiply (&m2l, &m2r, &m2l) ทํางานได้ตามที่คาดไว้
rsMatrixLoadOrtho : โหลดเมทริกซ์การฉายภาพแบบออโตรกราฟิก
| void rsMatrixLoadOrtho(rs_matrix4x4* m, float left, float right, float bottom, float top, float near, float far); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะตั้งค่า | 
|---|---|
| ซ้าย | |
| ขวา | |
| ด้านล่าง | |
| ด้านบน | |
| บริเวณใกล้ๆ | |
| ไกล | 
 สร้างเมทริกซ์การฉายภาพออร์โธกราฟิก ซึ่งเปลี่ยนกล่องที่ระบุโดยระนาบการครอบตัด 6 ระนาบ left, right, bottom, top, near, far ให้เป็นลูกบาศก์หน่วยที่มีมุมที่ (-1, -1, -1) และมุมตรงข้ามที่ (1, 1, 1)
หากต้องการใช้การฉายนี้กับเวกเตอร์ ให้คูณเวกเตอร์ด้วยเมทริกซ์ที่สร้างขึ้นโดยใช้ rsMatrixMultiply()
ดูที่ https://en.wikipedia.org/wiki/Orthographic_projection
rsMatrixLoadPerspective : โหลดเมทริกซ์การฉายภาพแบบเปอร์สเปกทีฟ
| void rsMatrixLoadPerspective(rs_matrix4x4* m, float fovy, float aspect, float near, float far); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะตั้งค่า | 
|---|---|
| fovy | ขอบเขตการมองเห็น หน่วยเป็นองศาตามแกน Y | 
| ด้าน | อัตราส่วน x / y | 
| บริเวณใกล้ๆ | อยู่ใกล้กับระนาบการตัด | 
| ไกล | ระนาบการตัดส่วนที่ไกล | 
สร้างเมทริกซ์การฉายภาพแบบเปอร์สเปกทีฟโดยสมมติว่ามุมมองเป็นแบบสมมาตร
หากต้องการใช้การฉายนี้กับเวกเตอร์ ให้คูณเวกเตอร์ด้วยเมทริกซ์ที่สร้างโดยใช้ rsMatrixMultiply()
rsMatrixLoadRotate : โหลดเมทริกซ์การหมุน
| void rsMatrixLoadRotate(rs_matrix4x4* m, float rot, float x, float y, float z); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะตั้งค่า | 
|---|---|
| การเน่า | ระดับการหมุน หน่วยเป็นองศา | 
| x | คอมโพเนนต์ X ของเวกเตอร์ที่เป็นแกนหมุน | 
| y | องค์ประกอบ Y ของเวกเตอร์ที่เป็นแกนหมุน | 
| z | องค์ประกอบ Z ของเวกเตอร์ที่เป็นแกนหมุน | 
 ฟังก์ชันนี้จะสร้างเมทริกซ์การหมุน  แกนหมุนคือเวกเตอร์ (x, y, z)
หากต้องการหมุนเวกเตอร์ ให้คูณเวกเตอร์ด้วยเมทริกซ์ที่สร้างโดยใช้ rsMatrixMultiply()
ดู https://en.wikipedia.org/wiki/Rotation_matrix
rsMatrixLoadScale : โหลดเมทริกซ์การปรับขนาด
| void rsMatrixLoadScale(rs_matrix4x4* m, float x, float y, float z); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะตั้งค่า | 
|---|---|
| x | คูณเพื่อปรับขนาดคอมโพเนนต์ x | 
| y | คูณเพื่อปรับขนาดองค์ประกอบ y | 
| z | คูณเพื่อปรับขนาดองค์ประกอบ z | 
ฟังก์ชันนี้จะสร้างเมทริกซ์การปรับขนาด ซึ่งจะคูณองค์ประกอบแต่ละรายการของเวกเตอร์ด้วยตัวเลข ตัวเลขนี้อาจเป็นค่าลบได้
หากต้องการปรับขนาดเวกเตอร์ ให้คูณเวกเตอร์ด้วยเมทริกซ์ที่สร้างขึ้นโดยใช้ rsMatrixMultiply()
rsMatrixLoadTranslate : โหลดเมทริกซ์การแปล
| void rsMatrixLoadTranslate(rs_matrix4x4* m, float x, float y, float z); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะตั้งค่า | 
|---|---|
| x | จํานวนที่จะเพิ่มลงในคอมโพเนนต์ x แต่ละรายการ | 
| y | จํานวนที่จะเพิ่มลงในคอมโพเนนต์ y แต่ละรายการ | 
| z | จํานวนที่จะเพิ่มลงในคอมโพเนนต์ z แต่ละรายการ | 
ฟังก์ชันนี้จะสร้างเมทริกซ์การแปล ซึ่งจะเพิ่มตัวเลขลงในองค์ประกอบแต่ละรายการของเวกเตอร์
หากต้องการแปลเวกเตอร์ ให้คูณเวกเตอร์ด้วยเมทริกซ์ที่สร้างโดยใช้ rsMatrixMultiply()
rsMatrixMultiply : คูณเมทริกซ์ด้วยเวกเตอร์หรือเมทริกซ์อื่น
| float2 rsMatrixMultiply(const rs_matrix2x2* m, float2 in); | เพิ่มใน API ระดับ 14 | 
| float2 rsMatrixMultiply(rs_matrix2x2* m, float2 in); | นำออกจาก API ระดับ 14 ขึ้นไป | 
| float3 rsMatrixMultiply(const rs_matrix3x3* m, float2 in); | เพิ่มใน API ระดับ 14 | 
| float3 rsMatrixMultiply(const rs_matrix3x3* m, float3 in); | เพิ่มใน API ระดับ 14 | 
| float3 rsMatrixMultiply(rs_matrix3x3* m, float2 in); | นำออกจาก API ระดับ 14 ขึ้นไป | 
| float3 rsMatrixMultiply(rs_matrix3x3* m, float3 in); | นำออกจาก API ระดับ 14 ขึ้นไป | 
| float4 rsMatrixMultiply(const rs_matrix4x4* m, float2 in); | เพิ่มใน API ระดับ 14 | 
| float4 rsMatrixMultiply(const rs_matrix4x4* m, float3 in); | เพิ่มใน API ระดับ 14 | 
| float4 rsMatrixMultiply(const rs_matrix4x4* m, float4 in); | เพิ่มใน API ระดับ 14 | 
| float4 rsMatrixMultiply(rs_matrix4x4* m, float2 in); | นำออกจาก API ระดับ 14 ขึ้นไป | 
| float4 rsMatrixMultiply(rs_matrix4x4* m, float3 in); | นำออกจาก API ระดับ 14 ขึ้นไป | 
| float4 rsMatrixMultiply(rs_matrix4x4* m, float4 in); | นำออกจาก API ระดับ 14 ขึ้นไป | 
| void rsMatrixMultiply(rs_matrix2x2* m, const rs_matrix2x2* rhs); | |
| void rsMatrixMultiply(rs_matrix3x3* m, const rs_matrix3x3* rhs); | |
| void rsMatrixMultiply(rs_matrix4x4* m, const rs_matrix4x4* rhs); | 
พารามิเตอร์
| m | เมทริกซ์ด้านซ้ายของผลิตภัณฑ์และเมทริกซ์ที่จะตั้งค่า | 
|---|---|
| rhs | เมทริกซ์ที่ถูกต้องของผลิตภัณฑ์ | 
| ใน | 
 สำหรับเมทริกซ์ตามเมทริกซ์ ให้ตั้งค่า m เป็นผลิตภัณฑ์เมทริกซ์ m * rhs
เมื่อรวมเมทริกซ์การเปลี่ยนรูปแบบ 4x4 2 รายการโดยใช้ฟังก์ชันนี้ เมทริกซ์ที่ได้จะสอดคล้องกับการเปลี่ยนรูปแบบ rhs ก่อนแล้วตามด้วยการเปลี่ยนรูปแบบ m เดิม
 สำหรับเมทริกซ์ตามตัวแปรเวกเตอร์ จะแสดงผลหลังการคูณเวกเตอร์ด้วยเมทริกซ์ นั่นคือ m * in
เมื่อคูณ float3 กับ rs_matrix4x4 ระบบจะขยายเวกเตอร์ด้วย (1)
เมื่อคูณ float2 กับ rs_matrix4x4 ระบบจะขยายเวกเตอร์ด้วย (0, 1)
เมื่อคูณ float2 กับ rs_matrix3x3 ระบบจะขยายเวกเตอร์ด้วย (0)
ตั้งแต่ API 14 เป็นต้นไป ฟังก์ชันนี้จะรับเมทริกซ์ const เป็นอาร์กิวเมนต์แรก
rsMatrixRotate : ใช้การหมุนกับเมทริกซ์การเปลี่ยนรูปแบบ
| void rsMatrixRotate(rs_matrix4x4* m, float rot, float x, float y, float z); | 
พารามิเตอร์
| m | ตารางเพื่อแก้ไข | 
|---|---|
| การเน่า | ระดับการหมุน หน่วยเป็นองศา | 
| x | คอมโพเนนต์ X ของเวกเตอร์ที่เป็นแกนหมุน | 
| y | องค์ประกอบ Y ของเวกเตอร์ที่เป็นแกนหมุน | 
| z | องค์ประกอบ Z ของเวกเตอร์ที่เป็นแกนหมุน | 
คูณเมทริกซ์ m ด้วยเมทริกซ์การหมุน
 ฟังก์ชันนี้จะแก้ไขเมทริกซ์การเปลี่ยนรูปแบบเพื่อหมุนก่อน  แกนการหมุนคือเวกเตอร์ (x, y, z)
หากต้องการใช้การเปลี่ยนรูปแบบแบบรวมนี้กับเวกเตอร์ ให้คูณเวกเตอร์ด้วยเมทริกซ์ที่สร้างขึ้นโดยใช้ rsMatrixMultiply()
rsMatrixScale : ใช้การปรับขนาดกับเมทริกซ์การเปลี่ยนรูปแบบ
| void rsMatrixScale(rs_matrix4x4* m, float x, float y, float z); | 
พารามิเตอร์
| m | ตารางที่จะแก้ไข | 
|---|---|
| x | คูณเพื่อปรับขนาดคอมโพเนนต์ x | 
| y | คูณเพื่อปรับขนาดองค์ประกอบ y | 
| z | คูณเพื่อปรับขนาดคอมโพเนนต์ z | 
คูณเมทริกซ์ m ด้วยเมทริกซ์การปรับขนาด
ฟังก์ชันนี้จะแก้ไขเมทริกซ์การเปลี่ยนรูปแบบเพื่อทำการขยายขนาดก่อน เมื่อปรับขนาด ระบบจะคูณองค์ประกอบแต่ละรายการของเวกเตอร์ด้วยตัวเลข ตัวเลขนี้อาจเป็นค่าลบได้
หากต้องการใช้การเปลี่ยนรูปแบบแบบรวมนี้กับเวกเตอร์ ให้คูณเวกเตอร์ด้วยเมทริกซ์ที่สร้างขึ้นโดยใช้ rsMatrixMultiply()
rsMatrixSet : ตั้งค่าองค์ประกอบเดียว
| void rsMatrixSet(rs_matrix2x2* m, uint32_t col, uint32_t row, float v); | |
| void rsMatrixSet(rs_matrix3x3* m, uint32_t col, uint32_t row, float v); | |
| void rsMatrixSet(rs_matrix4x4* m, uint32_t col, uint32_t row, float v); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะแก้ไข | 
|---|---|
| คอลัมน์ | คอลัมน์แบบนับจากศูนย์ขององค์ประกอบที่จะตั้งค่า | 
| แถว | แถวที่จะเริ่มนับจาก 0 ขององค์ประกอบที่จะตั้งค่า | 
| v | ค่าที่จะตั้ง | 
ตั้งค่าองค์ประกอบของเมทริกซ์
คําเตือน: ลําดับของพารามิเตอร์คอลัมน์และแถวอาจไม่เป็นไปตามที่คาดไว้
rsMatrixTranslate : ใช้การเปลี่ยนรูปแบบกับเมทริกซ์การเปลี่ยนรูปแบบ
| void rsMatrixTranslate(rs_matrix4x4* m, float x, float y, float z); | 
พารามิเตอร์
| m | ตารางที่จะแก้ไข | 
|---|---|
| x | จํานวนที่จะเพิ่มลงในคอมโพเนนต์ x แต่ละรายการ | 
| y | จํานวนที่จะเพิ่มลงในคอมโพเนนต์ y แต่ละรายการ | 
| z | จํานวนที่จะเพิ่มลงในคอมโพเนนต์ z แต่ละรายการ | 
คูณเมทริกซ์ m ด้วยเมทริกซ์การแปล
ฟังก์ชันนี้จะแก้ไขเมทริกซ์การเปลี่ยนรูปแบบเพื่อทำการแปลก่อน เมื่อแปล จะมีการเพิ่มตัวเลขลงในองค์ประกอบแต่ละรายการของเวกเตอร์
หากต้องการใช้การเปลี่ยนรูปแบบแบบรวมนี้กับเวกเตอร์ ให้คูณเวกเตอร์ด้วยเมทริกซ์ที่สร้างขึ้นโดยใช้ rsMatrixMultiply()
rsMatrixTranspose : สลับตำแหน่งเมทริกซ์
| void rsMatrixTranspose(rs_matrix2x2* m); | |
| void rsMatrixTranspose(rs_matrix3x3* m); | |
| void rsMatrixTranspose(rs_matrix4x4* m); | 
พารามิเตอร์
| m | เมทริกซ์ที่จะสลับ | 
|---|
สลับเมทริกซ์ m เข้าที่