ฟังก์ชันควอเทอร์เนียนของ RenderScript

ภาพรวม

ฟังก์ชันต่อไปนี้จะจัดการควอร์เทอร์เมนต์

สรุป

ฟังก์ชัน
rsQuaternionAdd เพิ่มควอตเทอร์นิโอน 2 รายการ
rsQuaternionConjugate หาคอนจูเกตของควอเทอร์เนียน
rsQuaternionDot ผลคูณจุดของควอตเทอร์นิโอน 2 รายการ
rsQuaternionGetMatrixUnit รับเมทริกซ์การหมุนจากควอตเทอร์เนิด
rsQuaternionLoadRotate สร้างควอตเทอร์เนิดการหมุน
rsQuaternionLoadRotateUnit ควอร์เทอร์ไบนารีที่แสดงการหมุนรอบเวกเตอร์หน่วยที่กำหนดเอง
rsQuaternionMultiply คูณควอตเทอร์เนิดด้วยสเกลาร์หรือควอตเทอร์เนิดอื่น
rsQuaternionNormalize ปรับค่าควอเทอร์เนียนให้เป็นปกติ
rsQuaternionSet สร้างควอตเทอร์เนิด
rsQuaternionSlerp การประมาณค่าเชิงเส้นแบบทรงกลมระหว่างควอตเทอร์นิโอน 2 รายการ

ฟังก์ชัน

rsQuaternionAdd : เพิ่มควอร์เทอร์นิโอน 2 รายการ

void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs);
พารามิเตอร์
qQuaternion ปลายทางที่จะเพิ่ม
rhsQuaternion ที่จะเพิ่ม

เพิ่มควอตเทอร์นิโอน 2 รายการ เช่น *q += *rhs;

rsQuaternionConjugate : Conjugate a quaternion

void rsQuaternionConjugate(rs_quaternion* q);
พารามิเตอร์
qQuaternion ที่จะแก้ไข

จับคู่ควอเทอร์เนียน

rsQuaternionDot : ผลคูณจุดของควอตเทอร์นิโอน 2 รายการ

float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1);
พารามิเตอร์
q0ควอตเทอร์เนิดแรก
q1ควอตเทอร์เนิดที่ 2

แสดงผลคูณจุดของควอตเทอร์นิโอน 2 รายการ

rsQuaternionGetMatrixUnit : รับเมทริกซ์การหมุนจากควอตเทอร์นิโอน

void rsQuaternionGetMatrixUnit(rs_matrix4x4* m, const rs_quaternion* q);
พารามิเตอร์
mเมทริกซ์ผลลัพธ์
qควอเทอร์เนียนมาตรฐาน

คำนวณเมทริกซ์การหมุนจากควอเทอร์เนียนมาตรฐาน

rsQuaternionLoadRotate : สร้างควอร์เทอร์ไบน์ของการหมุน

void rsQuaternionLoadRotate(rs_quaternion* q, float rot, float x, float y, float z);
พารามิเตอร์
qควอร์เทอร์ไบน์ปลายทาง
การเน่ามุมที่จะหมุน
xองค์ประกอบ X ของเวกเตอร์
yองค์ประกอบ Y ของเวกเตอร์
zองค์ประกอบ Z ของเวกเตอร์

โหลดควอเทอร์เนียนที่แสดงการหมุนรอบเวกเตอร์ที่กำหนดเอง (ไม่จำเป็นต้องเป็นเวกเตอร์หน่วย)

rsQuaternionLoadRotateUnit : Quaternion ที่แสดงการหมุนรอบเวกเตอร์หน่วยที่กำหนดเอง

void rsQuaternionLoadRotateUnit(rs_quaternion* q, float rot, float x, float y, float z);
พารามิเตอร์
qควอร์เทอร์ไบน์ปลายทาง
การเน่ามุมที่จะหมุนเป็นเรเดียน
xคอมโพเนนต์ X ของเวกเตอร์
yองค์ประกอบ Y ของเวกเตอร์
zองค์ประกอบ Z ของเวกเตอร์

โหลดควอร์เทอร์ไบน์ที่แสดงการหมุนรอบเวกเตอร์หน่วยที่กำหนดเอง

rsQuaternionMultiply : คูณควอร์เทอร์เนิดด้วยสเกลาร์หรือควอร์เทอร์เนิดอื่น

void rsQuaternionMultiply(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionMultiply(rs_quaternion* q, float scalar);
พารามิเตอร์
qควอตเทอร์เนิดปลายทาง
สเกลาร์สเกลาร์ที่จะคูณกับควอตเทอร์เนิออน
rhsควอร์เทอร์ไบน์ที่จะคูณกับควอร์เทอร์ไบน์ปลายทาง

คูณควอร์เทอร์เนิดด้วยสเกลาร์หรือด้วยควอร์เทอร์เนิดอื่น เช่น *q = *q * scalar; หรือ *q = *q * *rhs;

rsQuaternionNormalize : ปรับค่า quaternion ให้อยู่ในช่วงที่ยอมรับได้

void rsQuaternionNormalize(rs_quaternion* q);
พารามิเตอร์
qควอเทอร์เนียนที่จะทําให้เป็นมาตรฐาน

ทำให้ควอเทอร์เนียนเป็นปกติ

rsQuaternionSet : สร้างควอร์เทอร์นियन

void rsQuaternionSet(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionSet(rs_quaternion* q, float w, float x, float y, float z);
พารามิเตอร์
qควอตเทอร์เนิดปลายทาง
wองค์ประกอบ W
xองค์ประกอบ X
yองค์ประกอบ Y
zองค์ประกอบ Z
rhsควอร์เทอร์ไบน์ของแหล่งที่มา

สร้างควอตเทอร์เนิดจากองค์ประกอบ 4 รายการหรือจากควอตเทอร์เนิดอื่น

rsQuaternionSlerp : การหาค่าเฉลี่ยเชิงเส้นแบบทรงกลมระหว่างควอตเทอร์นิโอน 2 รายการ

void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t);
พารามิเตอร์
qควอตเทอร์เนิดผลลัพธ์จากการปัดเศษ
q0ควอร์เทอร์ไบน์อินพุตแรก
q1ควอตเทอร์เนิดอินพุตที่ 2
tอัตราส่วนการหาค่าเฉลี่ย

ทำการอินเตอร์โพเลชันเชิงเส้นแบบทรงกลมระหว่างควอตเทอร์นิโอน 2 รายการ