פונקציות Quaternion ב-RenderScript

סקירה כללית

הפונקציות הבאות מבצעות מניפולציות על קוואטרניונים.

סיכום

פונקציות
rsQuaternionAdd הוספת שני קווטרניונים
rsQuaternionConjugate הופעה מצומדת של קוואטרניון
rsQuaternionDot מכפלת נקודות של שני קווטרניונים
rsQuaternionGetMatrixUnit אחזור מטריצה של רוטציה מ-quaternion
rsQuaternionLoadRotate יצירת קוואטרניון של סיבוב
rsQuaternionLoadRotateUnit קוואטרניון שמייצג סיבוב סביב וקטור יחידה שרירותי
rsQuaternionMultiply הכפלת קוואטרניון בסקלר או בקווארטרניון אחר
rsQuaternionNormalize נרמל קווטרניון
rsQuaternionSet יצירת קוואטרניון
rsQuaternionSlerp אינטרפולציה ליניארית כדורית בין שני קוואטרניונים

פונקציות

rsQuaternionAdd : הוספה של שני quats

void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs);
פרמטרים
qהמטריקס הרב-ערכי של היעד שרוצים להוסיף אליו.
rhsQuaternion להוספה.

הוספה של שני קוואטרניונים, כלומר *q += *rhs;

rsQuaternionConjugate : Conjugate a quaternion

void rsQuaternionConjugate(rs_quaternion* q);
פרמטרים
qקווטרניון שרוצים לשנות.

הופכת את ה-quaternion.

rsQuaternionDot : מכפלת נקודות של שני קווטרניונים

float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1);
פרמטרים
q0ה-quaternion הראשון.
q1הרביעיון השני.

הפונקציה מחזירה את מכפלת הנקודה של שני קווטרניונים.

rsQuaternionGetMatrixUnit : אחזור של מטריצת רוטציה מ-quaternion

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 : כפל של quat על ידי סקלאר או על ידי quat אחר

void rsQuaternionMultiply(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionMultiply(rs_quaternion* q, float scalar);
פרמטרים
qקואורדינטות קוואטרניוניות של היעד.
סקלרסקלר שצריך להכפיל בו את ה-quaternion.
rhsקוואטרניון שצריך להכפיל בו את קוואטרניון היעד.

הכפלה של קוואטרניון בסקלר או בקווארטרניון אחר, למשל *q = *q * scalar; או *q = *q * *rhs;.

rsQuaternionNormalize : נורמליזציה של קוואטרניון

void rsQuaternionNormalize(rs_quaternion* q);
פרמטרים
qקווטרניון לצורך נירמול.

נירמול הקווטרניון.

rsQuaternionSet : יצירת quaternion

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קוואטרניון המקור.

יצירת קוואטרניון מארבעת הרכיבים שלו או מקוואטרניון אחר.

rsQuaternionSlerp : אינטרפולציה לינארית ספרית בין שני קואורדינטות quat

void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t);
פרמטרים
qתוצאת ה-quaternion מהאינטרפולציה.
q0קוואטרניון הקלט הראשון.
q1ה-quaternion השני של הקלט.
tהערך של הפונקציה שתתבצע עליו אינטרפולציה.

ביצוע אינטרפולציה ליניארית כדורית בין שני קוואטרניונים.