
рдкрд╣реЗрд▓реА рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВ: рдЪрд╛рд░ рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рдмреИрдарддрд╛ рд╣реИ рдФрд░ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдШреВрдорддрд╛ рд╣реИ?
рд╕рдВрдХреЗрдд: рдпрд╣ рдПрдХ рдЕрджрд┐рд╢ рд╕рджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИред рдФрд░ рдЕрд╕рд▓реА рдореИрдЯреНрд░рд┐рдХреНрд╕ред рдФрд░ рд╣реИрдорд┐рд▓реНрдЯрди рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдПред
рдорджрдж рдирд╣реАрдВ рдХреА? рдЦреИрд░, рдЖрдк, рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ! рдпрд╣ рдПрдХ рд╡рд┐рдЪрд┐рддреНрд░рддрд╛ рд╣реИ! рд░реЛрдмреЛрдЯрд┐рдХреНрд╕, рдЧреЗрдо рдЗрдВрдЬрди, рд╕рд┐рдореБрд▓реЗрд╢рди рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдФрд░ рдЬрд╣рд╛рдВ рднреА рдпреВрд▓рд░ рдПрдВрдЧрд▓реНрд╕ рдпрд╛ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Quaternions рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдмрдЯреЗрд░рд┐рдпрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдКрдкрд░ рдХреЗ рднреНрд░рдо рд╕реЗ рдбрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд╛рдВрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЪрддреБрд░реНрдзрд╛рддреБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЙрдирдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗрд╡рд▓ рдмрд╣реБрдд рд╣реА рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд╣рд╛рдВ рд╕реВрдХреНрд╖реНрдо рдЕрдиреБрдХреВрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдмрд╛рдХреА рд╕рдордп quaternions рдХреА рдорджрдж рд╕реЗ рдЖрдк рдХреБрдЫ рднреА рдФрд░ рдХреБрдЫ рднреА рдЯреНрд╡рд┐рд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдмрд┐рдирд╛
рддрд╛рд▓реЗ рдХреЛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдФрд░ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдЗрдВрдЯрд░рдкреЛрд▓ рдХрд░реЗрдЧрд╛ред
рдПрдХ рд╡рд┐рдЪрд┐рддреНрд░рддрд╛ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдХреНрдпрд╛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ: рдПрдХ рд╡реЗрдХреНрдЯрд░ рдФрд░ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдордирд╛ред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдПрдХ рдЧреЛрд▓реЗ рдХреЗ рдЕрдВрджрд░ рд╣реИрдВред рдЖрдк рдХреНрд╖реЗрддреНрд░ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рддрд╣ рдХреЛ рдЫреВ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реЛрдЧрд╛ред рдЕрдм, рдпрджрд┐ рдЖрдк рдмреНрд░рд╢ рдХреЛ рдШреБрдорд╛рдХрд░ рдЧреЛрд▓реЗ рдХреЛ рдШреБрдорд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЪрддреБрд╖реНрдХреЛрдг рдХрд╛ рджреВрд╕рд░рд╛ рдШрдЯрдХ рдорд┐рд▓рддрд╛ рд╣реИред рдХреНрд╡рд╛рдЯрд░рдирд┐рдпрди рдЕрдВрддрд┐рдо рд░реЛрдЯреЗрд╢рди рд╣реИ рдЬреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдХреНрд╡рд╛рдЯрд░рдирд┐рдпрди рдореЗрдВ рдПрдХ рдЪрд╛рд▓рд╛рдХ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИред рдЗрд╕реЗ рдЪрд╛рд░ рдирдВрдмрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╕рджрд┐рд╢ рдХреЗ рд▓рд┐рдП x, y, z рдФрд░ рд░реЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП wред рдХрдард┐рдирд╛рдИ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрднреА рднреА рддреАрди рдХрд╛рд▓реНрдкрдирд┐рдХ рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реИрдВ, рдЬреИрд╕реЗ: i
2 = j
2 = k
2 = ijk = тИТ1ред рд╕рдВрдкреВрд░реНрдг рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: q = w + x * i + y * j + z * k
рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рдХрд╛рд░рдг, рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪрддреБрд╖реНрдХреЛрдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛, рдмрд▓реНрдХрд┐ рдХрдо рд╣реИ, рд▓реЗрдХрд┐рди, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╡реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВред рд╕рднреА рдСрдкрд░реЗрд╢рди рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрддреБрд░реНрднреБрдЬ рдкрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ рдЙрди рдЪрд╛рд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░рдЪрдирд╛рдХрд╛рд░ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╕рдВрд░рдЪрдирд╛рдУрдВ рд╕реЗ рдПрдХ рдЪрддреБрд░реНрднреБрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
Quaternion.Euler in Unity3d рдпрд╛
Quaternion.CreateFromYawPitchRoll XNAред
рдХреНрд╡рд╛рдЯрд░реНрдиреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдСрдкрд░реЗрд╢рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдЖрдк рдПрдХ рдЪрддреБрд░реНрднреБрдЬ рдХреЛ рджреВрд╕рд░реЗ рд╕реЗ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкрд╣рд▓рд╛ рдШреБрдорд╛рд╡ рдорд┐рд▓рддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рджреНрд╡рд╛рд░рд╛ рдШреБрдорд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЪрддреБрд░реНрдзрд╛рддреБрдХ рдЧреБрдгрд╛ рд╕рд░рд╛рд╣рдиреАрдп рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдСрдкрд░реЗрдВрдб рдХрд╛ рдХреНрд░рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЕрд░реНрдерд╛рдд q
1 * q
2 , q
2 * q
1 рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдЖрдк рдЕрдВрддрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╛рдо: Quaternion.Euler (60, 0, 60) * Quaternion.Euler (0, 60, 0), рджрд╛рдПрдВ: Quaternion.Euler (0, 60, 0) * Quaternion.Euler (60, 0, 60)ред рд░рдВрдЧреАрди рд░реЗрдЦрд╛рдПрдВ рдкреНрд░рддреНрдпреЗрдХ рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдЕрдХреНрд╖реЛрдВ рдХреЗ рдорд╛рд░реНрдЧ рджрд┐рдЦрд╛рддреА рд╣реИрдВред

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЪрддреБрд░реНрднреБрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
var rightTurn = Quaternion.Euler(0, 90, 0);
рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХрд╛рд░ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рджрд╛рдИрдВ рдУрд░ рдШреВрдорддреА рд╣реИред рдпрджрд┐ рдХрд╛рд░ рдПрдХ рдЭреБрдХрд╛рд╡ рд╡рд╛рд▓реЗ рд╡рд┐рдорд╛рди рдкрд░ рдпрд╛рддреНрд░рд╛ рдХрд░ рд░рд╣реА рд╣реИ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрд▓реНрдЯрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрднреА рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдореЛрдбрд╝ рджреЗрдЧрд╛ рдЬрд╣рд╛рдВ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд░рд╛рдЗрдЯрдЯрд░реНрди рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 360 рдбрд┐рдЧреНрд░реА рд░реЛрдЯреЗрд╢рди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
car.rotation = car.rotation*rightTurn*rightTurn*rightTurn*rightTurn;
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рдЪрддреБрд░реНрднреБрдЬ рд░реЛрдЯреЗрд╢рди рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдордиреНрд╡рдп рдЕрдХреНрд╖реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдПрдХ quaternion рдХреЛ рджреВрд╕рд░реЗ quaternion рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░реЗ quaternion рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ quaternion рд╕рдВрджрд░реНрдн рдмрд┐рдВрджреБ рдмрди рдЬрд╛рддрд╛ рд╣реИред
рдЕрдЧрд░ рдЖрдк рдЕрдЪрд╛рдирдХ рдХрдИ рддрд░рд╣ рдХреА рдЙрддреНрддрд▓ рд╕рддрд╣реЛрдВ рдХреЛ рд╣рд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рд╕реБрдкрд░ рдорд╛рд░рд┐рдпреЛ рдЧреИрд▓реЗрдХреНрд╕реА рдореЗрдВ рдпреВрд▓рд░ рдПрдВрдЧрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░реИрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рди рдХрд┐ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдПред рдЪрддреБрд░реНрдзрд╛рддреБрдХ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдФрд░ рд╡реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдпреВрд▓рд░ рдХреЛрдг рдореЛрдбрд╝ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдХрд╛рд░рдг рдЙрдбрд╝рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ рдФрд░ рдЕрдХреНрд╕рд░
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣рд┐рдВрдЧ рд╡рд╛рд▓реЗ рд▓реЙрдХ рдореЗрдВ рдлрдВрд╕ рдЬрд╛рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдПрдиреАрдореЗрд╢рди рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХрд╛ рдЧреЛрд▓рд╛рдХрд╛рд░ рдкреНрд░рдХреНрд╖реЗрдк рдХрд┐рддрдирд╛ рдЕрд▓рдЧ рд╣реИред рдмрд╛рдИрдВ рдУрд░ рдЪрддреБрд░реНрдзрд╛рддреБрдХ, рджрд╛рдИрдВ рдУрд░ рдпреВрд▓рд░ рдХреЛрдгред

рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЖрд╢реНрдЪрд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЪрддреБрд░реНрдзрд╛рддреБрдХ рдЕрдВрджрд░ рдХреИрд╕реЗ рджрд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
w | рдПрдХреНрд╕ | y | z | рд░реЛрдЯреЗрд╢рди |
---|
1 | 0 | 0 | 0 | рдХреЛрдИ рд░реЛрдЯреЗрд╢рди рдирд╣реАрдВ |
0 | 1 | 0 | 0 | рдПрдХреНрд╕-рдЕрдХреНрд╖ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ 180 ┬░ |
sqrt (0.5) | sqrt (0.5) | 0 | 0 | рдПрдХреНрд╕-рдЕрдХреНрд╖ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ 90 ┬░ |
sqrt (0.5) | -sqrt (0.5) | 0 | 0 | рдПрдХреНрд╕ рдЕрдХреНрд╖ рдХреЗ рдЖрд╕рдкрд╛рд╕ -90 ┬░ |
рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдореВрд▓реНрдп рдирд┐рдореНрди рд╕реВрддреНрд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:
[w, x, y, z] = [cos(alpha/2), sin(alpha/2)*vx, sin(alpha/2)*vy, sin(alpha/2)*vz]
рдЬрд╣рд╛рдБ
рдЕрд▓реНрдлрд╛ рд░реЛрдЯреЗрд╢рди рдХрд╛ рдХреЛрдг рд╣реИ, рдФрд░
vx, vy, vz рд░реЛрдЯреЗрд╢рди рдХреЗ рдЕрдХреНрд╖ рдХрд╛ рд╡реЗрдХреНрдЯрд░ рд╣реИред
рдЪрддреБрд░реНрднреБрдЬ рдХреЗ рдЬреЛрдбрд╝ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рд░реЛрдЯреЗрд╢рди рд╣реИред рдЪрддреБрд░реНрдзрд╛рддреБрдХ рдХрд╛ рдЬреЛрдбрд╝ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ, рдпрд╣ рдЙрдирдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рд░рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, q
1 = 1 + 0i + 0j + 0k (рдКрдкрд░ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╢реВрдиреНрдп рд░реЛрдЯреЗрд╢рди) рдФрд░ q
2 = 0 + 1i + 0j + 0k (рдПрдХреНрд╕ рдЕрдХреНрд╖ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ 180 ┬░)ред рдЗрдирдХрд╛ рдпреЛрдЧ q
3 = 1 + 1i + 0j + 0k рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рдд X рдзреБрд░реА рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ 90 ┬░ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Unity3d рдореЗрдВ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЪрддреБрд╖реНрдХреЛрдгреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк quaternions рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ
рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдЖрдк рд╡реБрд▓реНрдлрд░рд╛рдо рдореЗрдВ рднреА рддрд▓реНрд▓реАрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
ред рдЕрд▓реНрдлрд╛ , рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЯрди рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдмрд╣реБрдд рдХреБрдЫ рдЬрд╛рдирддрд╛ рд╣реИред рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдбреЗрдореЛ рдореЗрдВ рдпреВрд▓рд░ рдПрдВрдЧрд▓реНрд╕ рдФрд░ рдХреНрд╡рд╛рдЯрд░рдирд┐рдпрдиреНрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
WebGL |
рд╡рд┐рдВрдбреЛрдЬ |
рд▓рд┐рдирдХреНрд╕ |
рдореИрдХ |
рдЧрд┐рдЯрд╣рдм рд╕реНрд░реЛрддрдорд╛рдЙрд╕ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рджреГрд╢реНрдп рдХреЛ рдШреБрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП, AD, WS рдФрд░ QE - рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд░реЛрдЯреЗрд╢рди, Esc - рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ, рд╢реЗрд╖ рдмрдЯрди рд╕реНрдХреНрд░реАрди рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред
рд▓рд┐рдирдХреНрд╕ рдпреВрдЬрд░реНрд╕ рдХреЗ рд▓рд┐рдП: рдХреНрд╡рд╛рдЯрд░рдирд┐рдпреЛрдЬ рдлрд╛рдЗрд▓ рдХреЛ "chmod + x Quaternions" рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВред