3.5.8 · D3 · Physics › Guidance, Navigation & Control (GNC) › Quaternion rotation formula — rotating vector v by quaternio
Yeh page quaternion rotation formula ka drill hall hai. Parent note ne v ′ = q v q − 1 derive kiya tha. Yahan hum isme har tarah ka input daalenge — har axis, har angle ka sign, fixed vector, zero vector, zero rotation, poora 36 0 ∘ turn, composition, aur ek real spacecraft problem — taaki aap koi bhi case pehli baar na dekho.
Sab kuch ek hi recipe pe tikaa hai, isliye koi bhi symbol dobara aane se pehle usse saral shabdon mein dobaara batate hain.
Recall Recipe ek saans mein
Ek quaternion chaar numbers hote hain: ek scalar w aur ek vector v = ( x , y , z ) , likha jaata hai q = ( w , v ) . Kisi 3D arrow v ko angle θ se spin-axis n ^ ke aas-paas rotate karne ke liye (jo ek unit-length arrow hai jo kehta hai "MERE around ghoom"):
q = ( cos 2 θ , sin 2 θ n ^ ) banao — half-angle andar chhupa hai.
Arrow ko pure quaternion v = ( 0 , v ) ke roop mein wrap karo (scalar zero).
Sandwich karo: v ′ = q v q − 1 , jahan unit q ke liye q − 1 = ( w , − v ) .
Output v ′ = ( 0 , v ′ ) hoga; v ′ padhh lo.
Hum zyaadatar algebra ka shortcut Rodrigues' rotation formula se lenge jo parent note ne prove kiya tha,
v ′ = v cos θ + ( n ^ × v ) sin θ + n ^ ( n ^ ⋅ v ) ( 1 − cos θ ) ,
lekin Example 1 mein poora Hamilton-product sandwich ek baar haath se kiya jaayega taaki aap pe trust ho sake.
Is topic ka har problem in cells mein se ek hai. Table ko ek checklist ki tarah padho un inputs ki jo aapko survive karni chahiye — har row ek alag tarah ki cheez hai jo formula ko di ja sakti hai, aur "Trap" column us mistake ka naam batata hai jo woh cell typically trigger karti hai. Phir worked examples har row ko cover karte hain taaki koi cell sirf words tak limited na rahe.
#
Case class
Is cell mein chhupa trap
Example
A
Axis-aligned, positive angle
q mein half-angle bhool jaana
Ex 1, Ex 2
B
Vector axis par (degenerate)
yeh expect karna ki woh move karega
Ex 3
C
Negative / reversed angle
galat spin direction
Ex 4
D
Identity / zero rotation (θ = 0 )
axis nikalte waqt sin 2 θ = 0 se divide karna
Ex 5
E
Full turn θ = 36 0 ∘ , ± q double cover
q = − 1 ko "flipped" samajhna
Ex 5
F
Tilted axis, general vector
non-unit axis silently rescale kar deta hai
Ex 6
G
Composition (order matters)
q 1 q 2 likhna q 2 q 1 ki jagah
Ex 7
H
Real-world word problem (GNC)
body vs inertial frame mix karna
Ex 8
I
Diye gaye q se axis+angle recover karna
un-normalised q se axis padhna
Ex 9
J
Zero vector input v = 0
division-by-length error expect karna
Ex 10
v = ( 1 , 0 , 0 ) ko z -axis ke baare mein θ = 9 0 ∘ se rotate karo, Hamilton product directly use karke.
Forecast: + x ko + z ke baare mein 9 0 ∘ counter-clockwise ghoomaane par + y ki taraf jaana chahiye. Padhne se pehle answer guess karo. Tumhare hisaab se yeh kahaan land karega?
Step 1 — Half-angle se q banao.
n ^ = ( 0 , 0 , 1 ) , 2 θ = 4 5 ∘ , toh cos 4 5 ∘ = sin 4 5 ∘ = 2 2 ≈ 0.7071 .
q = ( 2 2 , 0 , 0 , 2 2 ) , q − 1 = ( 2 2 , 0 , 0 , − 2 2 ) .
Yeh step kyun? Sandwich q ko do baar use karta hai, isliye hum sirf aadha turn (4 5 ∘ ) andar daalte hain; do aadhe milke poora 9 0 ∘ banaate hain.
Step 2 — Vector wrap karo. v = ( 0 , 1 , 0 , 0 ) (scalar part 0 ; iska matlab yahi hai "pure").
Kyun? Sirf pure quaternions real 3D arrows represent karte hain, isliye pehle v ko embed karna zaroori hai.
Step 3 — Pehla product q v . Hamilton rule ( w 1 w 2 − v 1 ⋅ v 2 , w 1 v 2 + w 2 v 1 + v 1 × v 2 ) use karte hain jo abhi upar likha hai, q = ( 2 2 , ( 0 , 0 , 2 2 )) aur v = ( 0 , ( 1 , 0 , 0 )) ke saath:
scalar: 2 2 ⋅ 0 − ( 0 , 0 , 2 2 ) ⋅ ( 1 , 0 , 0 ) = 0
vector: 2 2 ( 1 , 0 , 0 ) + 0 + ( 0 , 0 , 2 2 ) × ( 1 , 0 , 0 ) = ( 2 2 , 0 , 2 2 )
Yahan ( 0 , 0 , 2 2 ) × ( 1 , 0 , 0 ) = ( 0 ⋅ 0 − 2 2 ⋅ 0 , 2 2 ⋅ 1 − 0 ⋅ 0 , 0 ⋅ 0 − 0 ⋅ 1 ) = ( 0 , 2 2 , 0 ) , toh vector sum hai ( 2 2 , 2 2 , 0 ) .
Toh q v = ( 0 , 2 2 , 2 2 , 0 ) .
Kyun? Yeh intermediate generally pure nahi hota — iske paas scalar ho sakta hai — aur bilkul isi liye hume abhi bhi daayein taraf q − 1 chahiye jo scalar ko wapas zero kar sake (parent mein Step 1 closure proof).
Step 4 — Doosra product ( q v ) q − 1 . ( 0 , ( 2 2 , 2 2 , 0 )) ko q − 1 = ( 2 2 , ( 0 , 0 , − 2 2 )) se multiply karo:
scalar: 0 ⋅ 2 2 − ( 2 2 , 2 2 , 0 ) ⋅ ( 0 , 0 , − 2 2 ) = 0 ✓ (pure, jaisa vaada tha)
vector: 0 ⋅ ( 0 , 0 , − 2 2 ) + 2 2 ( 2 2 , 2 2 , 0 ) + ( 2 2 , 2 2 , 0 ) × ( 0 , 0 , − 2 2 )
Cross term ( 2 2 , 2 2 , 0 ) × ( 0 , 0 , − 2 2 ) = ( 2 2 ⋅ ( − 2 2 ) − 0 , 0 − 2 2 ⋅ ( − 2 2 ) , 0 ) = ( − 2 1 , 2 1 , 0 ) , aur scaled part 2 2 ( 2 2 , 2 2 , 0 ) = ( 2 1 , 2 1 , 0 ) . Sum: ( 0 , 1 , 0 ) .
v ′ = ( 0 , 1 , 0 )
Verify: scalar part 0 nikla (valid vector ✓); length ∥ ( 0 , 1 , 0 ) ∥ = 1 = ∥ ( 1 , 0 , 0 ) ∥ (rotations length preserve karti hain ✓); direction + y hai, forecast se match karta hai.
Intuition Neeche ki figure kya dikhati hai
Picture mein aap seedha spin-axis ke upar se dekh rahe ho: + z page ke bahar point kar raha hai (yellow label). Blue arrow input v = ( 1 , 0 , 0 ) hai; green arc 9 0 ∘ ka sweep hai; red arrow output v ′ = ( 0 , 1 , 0 ) hai. Dekho blue arrow green arc par savar hokar counter-clockwise quarter-turn lekar red par aata hai — woh swing hi hai jo q v q − 1 ne upar algebraically compute kiya.
v = ( 2 , 0 , 0 ) ko y -axis ke baare mein θ = 12 0 ∘ se rotate karo.
Forecast: + y ke baare mein, x -axis − z ki taraf neeche jhukti hai. 12 0 ∘ ke baad (9 0 ∘ mark ke aage, jo − z par baithta hai) yeh partly − x mein, partly − z mein land karni chahiye. Signs guess karo.
Step 1 — Rodrigues shortcut. n ^ = ( 0 , 1 , 0 ) , n ^ ⋅ v = 0 (perpendicular), toh parallel term vanish ho jaata hai.
Yeh step kyun? Jab v ⊥ n ^ hota hai toh formula sirf v cos θ + ( n ^ × v ) sin θ tak collapse ho jaata hai — ek saaf planar rotation.
Step 2 — Cross product. n ^ × v = ( 0 , 1 , 0 ) × ( 2 , 0 , 0 ) = ( 0 ⋅ 0 − 0 ⋅ 0 , 0 ⋅ 2 − 0 ⋅ 0 , 0 ⋅ 0 − 1 ⋅ 2 ) = ( 0 , 0 , − 2 ) .
Kyun? Yeh vector batata hai tip kidhar move karti hai — yahan − z , tip ki "neeche" direction.
Step 3 — Assemble karo. cos 12 0 ∘ = − 2 1 , sin 12 0 ∘ = 2 3 :
v ′ = ( 2 , 0 , 0 ) ( − 2 1 ) + ( 0 , 0 , − 2 ) 2 3 = ( − 1 , 0 , − 3 ) ≈ ( − 1 , 0 , − 1.732 ) .
Yeh step kyun? Do surviving terms orthogonal directions hain — shrunk original (cos θ along + x ) plus swing (sin θ along cross-product direction − z ). Yeh simply independent components ki tarah add hote hain, ek x mein aur ek z mein land karte hain, koi overlap nahi.
Verify: length 1 + 0 + 3 = 2 ✓ (∥ v ∥ = 2 se match karta hai). Dono − x aur − z components hain, forecast se match.
v = ( 0 , 0 , 3 ) ko z -axis ke baare mein θ = 9 0 ∘ se rotate karo.
Forecast: v usi axis ke along point karta hai jiske baare mein hum spin kar rahe hain. Kya ek spinning-top ki axle apni khud ki spin se move kar sakti hai? Output guess karo.
Step 1 — Parallelism check karo. n ^ = ( 0 , 0 , 1 ) , v = ( 0 , 0 , 3 ) = 3 n ^ , toh v ∥ n ^ .
Yeh step kyun? Rodrigues formula v ko n ^ ke along aur across parts mein split karta hai; sirf across-part rotate hoti hai.
Step 2 — Moving terms ko khatam karo. n ^ × v = 0 (parallel vectors), aur n ^ ( n ^ ⋅ v ) ( 1 − cos θ ) = n ^ ( 3 ) ( 1 − 0 ) = ( 0 , 0 , 3 ) , jabki v cos θ = ( 0 , 0 , 3 ) ( 0 ) = 0 .
Kyun? ( 1 − cos θ ) term exactly us parallel component ko restore karta hai jo cos θ ne shrink kiya — use untouched chhod deta hai.
Step 3 — Sum. v ′ = ( 0 , 0 , 0 ) + ( 0 , 0 , 0 ) + ( 0 , 0 , 3 ) = ( 0 , 0 , 3 ) .
v ′ = v = ( 0 , 0 , 3 )
Verify: unchanged, jaisa ki z ke baare mein rotation ko z -arrow fixed rakhna chahiye ✓. Yeh degenerate cell hai — har rotation ki aisi fixed directions hoti hain (iska axis).
v = ( 1 , 0 , 0 ) ko z -axis ke baare mein θ = − 9 0 ∘ se rotate karo.
Forecast: ek negative angle opposite (clockwise) direction mein spin karta hai. Agar + 9 0 ∘ ne + x → + y bheja (Ex 1), toh − 9 0 ∘ kya dega?
Step 1 — Half-angle sign carry karta hai. 2 θ = − 4 5 ∘ , toh q = ( cos ( − 4 5 ∘ ) , 0 , 0 , sin ( − 4 5 ∘ )) = ( 2 2 , 0 , 0 , − 2 2 ) .
Yeh step kyun? sin odd hai: θ ka sign seedha quaternion ke vector part mein jaata hai, spin direction flip kar deta hai. Note karo yeh q Example 1 ke q − 1 jaisa hai — angle negate karna rotation invert karne ke barabar hai.
Step 2 — Rodrigues cos ( − 9 0 ∘ ) = 0 , sin ( − 9 0 ∘ ) = − 1 ke saath.
n ^ × v = ( 0 , 0 , 1 ) × ( 1 , 0 , 0 ) = ( 0 , 1 , 0 ) .
v ′ = ( 1 , 0 , 0 ) ( 0 ) + ( 0 , 1 , 0 ) ( − 1 ) + 0 = ( 0 , − 1 , 0 ) .
v ′ = ( 0 , − 1 , 0 )
Verify: − y ki taraf point karta hai, Ex 1 ke + y ka mirror ✓. Length 1 ✓. Negative angle = opposite quadrant, bilkul forecast jaisa.
Worked example (a) Kisi bhi
v = ( 2 , − 1 , 4 ) ko arbitrary axis n ^ (koi bhi unit vector — maano n ^ = ( 0 , 0 , 1 ) , lekin answer uspar depend nahi karega) ke baare mein θ = 0 se rotate karo. (b) Wohi v ko z -axis ke baare mein θ = 36 0 ∘ se rotate karo, aur q inspect karo.
Forecast: kuch na karna, ya poora spin, dono v ko unchanged return karein. Lekin dekho 36 0 ∘ par quaternion khud kya karta hai.
Step 1 (a) — Zero rotation. 2 θ = 0 ke saath: q = ( cos 0 , sin 0 n ^ ) = ( 1 , 0 ) , identity quaternion — aur critically sin 0 = 0 axis ko poori tarah mita deta hai , isliye sach mein koi fark nahi padta hum konsa n ^ choose karte hain.
Kyun? q = 1 trivially multiply karta hai: 1 ⋅ v ⋅ 1 = v . Rodrigues mein, cos 0 = 1 , sin 0 = 0 , ( 1 − cos 0 ) = 0 , toh n ^ mention karne wali har term mein 0 ka factor hai — axis drop ho jaata hai aur v ′ = v rehta hai n ^ chahe kuch bhi ho.
v ′ = ( 2 , − 1 , 4 ) ✓.
Step 2 (b) — Full turn. 2 θ = 18 0 ∘ : q = ( cos 18 0 ∘ , sin 18 0 ∘ n ^ ) = ( − 1 , 0 ) = − 1 .
Yeh step kyun? 36 0 ∘ ka aadha 18 0 ∘ hai, aur cos 18 0 ∘ = − 1 — quaternion − 1 ban jaata hai, + 1 nahi , bhale hi physical rotation identity hai.
Step 3 — q = − 1 ke saath sandwich. ( − 1 ) v ( − 1 ) − 1 = ( − 1 ) v ( − 1 ) = v . Do minus signs cancel ho jaate hain.
v ′ = ( 2 , − 1 , 4 )
Verify: unchanged ✓. Yeh hai double cover : q = + 1 (no turn) aur q = − 1 (full turn) alag 4-tuples hain lekin same rotation hain. Toh q aur − q hamesha identically rotate karte hain — dekho SLERP — quaternion interpolation jahan is sign ko handle karna zaroori hai "long way round" avoid karne ke liye. Euler angles & gimbal lock se sirf is maayne mein relate karta hai ki quaternions us pathology se poori tarah bachte hain.
v = ( 1 , 2 , 3 ) ko tilted axis n ^ = 3 1 ( 1 , 1 , 1 ) ke baare mein θ = 18 0 ∘ se rotate karo.
Forecast: n ^ ke baare mein 18 0 ∘ flip perpendicular part reflect karta hai aur parallel part rakhta hai. Toh answer hona chahiye "axis par shadow ka double, minus original." Guess karo ki components positive rahenge ya nahi.
Step 1 — Confirm karo n ^ unit hai. ∥ n ^ ∥ 2 = 3 1 ( 1 + 1 + 1 ) = 1 ✓.
Yeh step kyun? Rodrigues aur quaternion recipe dono maante hain ki n ^ ki length 1 hai; ek non-unit axis silently vector ko scale kar degi.
Step 2 — 18 0 ∘ simplification. cos 18 0 ∘ = − 1 , sin 18 0 ∘ = 0 . Rodrigues ban jaata hai
v ′ = − v + n ^ ( n ^ ⋅ v ) ( 1 − ( − 1 )) = − v + 2 n ^ ( n ^ ⋅ v ) .
Kyun? 18 0 ∘ par cross term khatam ho jaata hai (sin = 0 ); jo bachta hai woh classic "axis ke through reflect" formula hai 2 ( parallel ) − v .
Step 3 — Numbers. n ^ ⋅ v = 3 1 ( 1 + 2 + 3 ) = 3 6 = 2 3 . Phir 2 n ^ ( n ^ ⋅ v ) = 2 ⋅ 3 1 ( 1 , 1 , 1 ) ⋅ 2 3 = 4 ( 1 , 1 , 1 ) = ( 4 , 4 , 4 ) .
v ′ = ( 4 , 4 , 4 ) − ( 1 , 2 , 3 ) = ( 3 , 2 , 1 ) .
Yeh step kyun? n ^ ⋅ v axis par v ke shadow ki length hai; ise n ^ se multiply karke parallel component rebuild hoti hai, aur use double karne se (2 ) perpendicular part axis ke doosri taraf reflect ho jaati hai. Original v subtract karne par bilkul parallel-kept, perpendicular-flipped milta hai — jo ki ek 18 0 ∘ turn hai . Do 3 factors ka clean integer mein cancel hona ek hint hai ki sab sahi kiya.
v ′ = ( 3 , 2 , 1 )
Verify: length 9 + 4 + 1 = 14 = ∥ ( 1 , 2 , 3 ) ∥ ✓. Ek achha sanity check: diagonal ( 1 , 1 , 1 ) ke baare mein 18 0 ∘ turn coordinates ko permute/reflect karta hai — yahan ( 1 , 2 , 3 ) → ( 3 , 2 , 1 ) , beech wala component fixed kyunki woh axis ke symmetrically baithta hai.
Intuition Neeche ki figure kya dikhati hai
Yellow line tilted axis n ^ = 3 1 ( 1 , 1 , 1 ) hai. Blue arrow input v = ( 1 , 2 , 3 ) hai; green arrow uska axis par shadow v ∥ hai (woh part jo 18 0 ∘ turn rakhe rakhta hai). Red arrow output v ′ = ( 3 , 2 , 1 ) hai. Notice karo blue aur red arrows yellow axis line ke across mirror images hain — wahi mirroring hai 2 v ∥ − v visible made.
v = ( 1 , 0 , 0 ) lo. Pehle x ke baare mein + 9 0 ∘ rotate karo (q 1 ), phir y ke baare mein + 9 0 ∘ (q 2 ). Phir swapped order mein karo aur confirm karo ki dono alag hain.
Forecast: + x ko x ke baare mein rotate karne se kuch nahi hota, toh pehle order mein sirf y -rotation apply hogi. Lekin swap karo toh kuch aur milega — non-commutativity prove karta hai. Dono guess karo.
Step 1 — Dono quaternions banao. q 1 = ( cos 4 5 ∘ , sin 4 5 ∘ , 0 , 0 ) , q 2 = ( cos 4 5 ∘ , 0 , sin 4 5 ∘ , 0 ) , dono 2 2 ke saath.
Yeh step kyun? Har rotation ka apna q hai half-angle ke saath; composition unhe combine karta hai.
Step 2 — Combined quaternion q = q 2 q 1 hai (pehle rightmost).
Kyun? Sandwich nest karta hai: q 2 ( q 1 v q 1 − 1 ) q 2 − 1 = ( q 2 q 1 ) v ( q 2 q 1 ) − 1 , aur q 1 (pehle apply hota hai) daayein baithta hai.
Step 3 — Order 1 (x phir y ). x ke baare mein, v = ( 1 , 0 , 0 ) axis par hai → unchanged (Cell B). Phir y ke baare mein + 9 0 ∘ + x → − z bhejta hai (right-hand rule): v ′ = ( 0 , 0 , − 1 ) .
Yeh step kyun? Pehli rotation yahan no-op hai, toh poora result sirf doosri rotation ka + x par action hai.
Step 4 — Order 2 (y phir x ). Pehle y ke baare mein + 9 0 ∘ : + x → − z , milta hai ( 0 , 0 , − 1 ) . Phir x ke baare mein + 9 0 ∘ us − z vector ko rotate karta hai; + x ke baare mein mapping hai + z → + y aur + z → − y ... dhyaan se: + 9 0 ∘ x ke baare mein + y → + z aur + z → − y bhejta hai, isliye − z → + y . Toh ( 0 , 0 , − 1 ) → ( 0 , 1 , 0 ) .
Yeh step kyun? Ab y -rotation pehle act karta hai (+ x ko x -axis se hata deta hai), isliye x -rotation ab no-op nahi rahi — woh sach mein intermediate vector ko move karti hai.
Order 1: ( 0 , 0 , − 1 ) = Order 2: ( 0 , 1 , 0 )
Verify: dono ki length 1 ✓, lekin alag hain ✓ — quaternion multiplication non-commutative hai, bilkul Rotation matrices & orthogonality jaisi. Yahi wajah hai ki "apply rightmost first" bolna zaroori hai. Dekho Quaternion algebra & Hamilton product .
Worked example Ek spacecraft ka star tracker ek guide-star direction
v = ( 0 , 1 , 0 ) body frame mein report karta hai. Attitude quaternion (body→inertial) hai q = ( 2 2 , 0 , 0 , 2 2 ) — + z ke baare mein 9 0 ∘ rotation. Star inertial frame mein kahaan point karta hai?
Forecast: yeh q z ke baare mein + 9 0 ∘ turn karta hai, toh ek body-+ y vector ko inertial space mein − x ki taraf jaana chahiye. Compute karne se pehle guess karo.
Step 1 — q se θ , n ^ identify karo. cos 2 θ = 2 2 ⇒ 2 θ = 4 5 ∘ ⇒ θ = 9 0 ∘ ; vector part ( 0 , 0 , 2 2 ) + z ke along point karta hai, toh n ^ = ( 0 , 0 , 1 ) .
Yeh step kyun? Spacecraft attitude determination (GNC) mein ek attitude quaternion wahi rotation hai jo body-frame vectors ko inertial waale mein le jaati hai; use padh ke geometry samajh aati hai.
Step 2 — Cross product. n ^ ⋅ v = ( 0 , 0 , 1 ) ⋅ ( 0 , 1 , 0 ) = 0 (perpendicular), aur n ^ × v = ( 0 , 0 , 1 ) × ( 0 , 1 , 0 ) = ( 0 ⋅ 0 − 1 ⋅ 1 , 1 ⋅ 0 − 0 ⋅ 0 , 0 ⋅ 1 − 0 ⋅ 0 ) = ( − 1 , 0 , 0 ) .
Yeh step kyun? Kyunki v ⊥ n ^ , parallel term drop ho jaata hai aur sirf planar spin bachti hai; cross product swing direction deta hai, yahan − x .
Step 3 — Rodrigues apply karo. cos 9 0 ∘ = 0 , sin 9 0 ∘ = 1 :
v ′ = ( 0 , 1 , 0 ) ( 0 ) + ( − 1 , 0 , 0 ) ( 1 ) + 0 = ( − 1 , 0 , 0 ) .
Yeh step kyun? Original + y component cos 9 0 ∘ se zero ho jaata hai, aur poora swing sin 9 0 ∘ = 1 poore vector ko cross-product direction − x par land karta hai — ek clean quarter-turn.
v ′ = ( − 1 , 0 , 0 )
Verify: unit length preserved ✓; guide star inertial − x ke along hai, forecast se match karta hai. Physically tracker ka fix attitude filter ko feed karta hai; quaternion time ke saath Angular velocity & quaternion kinematics $\dot q=\tfrac12 q\omega$ se evolve karta hai.
q = ( 0.5 , 0.5 , 0.5 , 0.5 ) diya gaya hai aur bola gaya hai ki yeh unit quaternion hai. Yeh kaunsa rotation hai (axis aur angle)? Phir v = ( 1 , 0 , 0 ) ko isse rotate karo.
Forecast: scalar 0.5 thoda chhota hai, toh angle zyaada nahi hoga. Guess karo yeh 9 0 ∘ se zyaada hai ya kam.
Step 1 — Unit norm check karo. 0. 5 2 ⋅ 4 = 1 ✓. Safely padh sakte hain.
Yeh step kyun? Axis/angle read-out q = ( cos 2 θ , sin 2 θ n ^ ) sirf unit q ke liye valid hai; ek un-normalised q par vector part sin 2 θ n ^ ke barabar nahi hogi aur axis galat niklega.
Step 2 — Scalar se angle. cos 2 θ = 0.5 ⇒ 2 θ = 6 0 ∘ ⇒ θ = 12 0 ∘ .
Kyun? Scalar part cos 2 θ hai; cosine invert karo, phir double karo.
Step 3 — Vector part se axis. sin 2 θ = sin 6 0 ∘ = 2 3 ≈ 0.866 . Vector part ( 0.5 , 0.5 , 0.5 ) ki length 2 3 hai ✓, toh n ^ = 3 /2 ( 0.5 , 0.5 , 0.5 ) = 3 1 ( 1 , 1 , 1 ) .
Kyun? Vector part ko sin 2 θ se divide karo taaki magnitude strip ho aur unit axis mile.
Step 4 — v = ( 1 , 0 , 0 ) ko rotate karo, θ = 12 0 ∘ n ^ = 3 1 ( 1 , 1 , 1 ) ke baare mein. cos 12 0 ∘ = − 2 1 , sin 12 0 ∘ = 2 3 . n ^ ⋅ v = 3 1 , n ^ × v = 3 1 ( 1 , 1 , 1 ) × ( 1 , 0 , 0 ) = 3 1 ( 0 , 1 , − 1 ) .
v ′ = ( 1 , 0 , 0 ) ( − 2 1 ) + 3 1 ( 0 , 1 , − 1 ) 2 3 + 3 1 ( 1 , 1 , 1 ) ⋅ 3 1 ⋅ 2 3 .
Yeh step kyun? Teen orthogonal contributions add hoti hain: shrunk original (cos θ ), swing (sin θ along cross product), aur restored parallel part (( 1 − cos θ ) along n ^ ). Term by term: ( − 2 1 , 0 , 0 ) + ( 0 , 2 1 , − 2 1 ) + 2 1 ( 1 , 1 , 1 ) = ( 0 , 1 , 0 ) .
θ = 12 0 ∘ , n ^ = 3 1 ( 1 , 1 , 1 ) , v ′ = ( 0 , 1 , 0 )
Verify: length 1 ✓; diagonal ( 1 , 1 , 1 ) ke baare mein 12 0 ∘ turn axes ko cyclically permute karta hai x → y → z → x , toh ( 1 , 0 , 0 ) → ( 0 , 1 , 0 ) ✓ — ek khoobsurat independent check.
Worked example Zero vector
v = ( 0 , 0 , 0 ) ko kisi bhi rotation se rotate karo, maano θ = 13 7 ∘ n ^ = 2 1 ( 1 , 1 , 0 ) ke baare mein.
Forecast: zero vector origin par ek point hai — iske paas koi direction nahi hai turn karne ke liye. Rotation iska kya kar sakta hai? Padhne se pehle guess karo.
Step 1 — Rodrigues mein daalo. Har term mein v ka factor hai: v cos θ , ( n ^ × v ) sin θ , aur n ^ ( n ^ ⋅ v ) ( 1 − cos θ ) .
Yeh step kyun? Humhe θ ya n ^ ke actual numbers nahi chahiye — structure akela answer decide karta hai, kyunki formula v mein linear hai.
Step 2 — Har term vanish hoti hai. 0 cos θ = 0 ; n ^ × 0 = 0 ; n ^ ⋅ 0 = 0 toh aakhri term hai n ^ ⋅ 0 ⋅ ( 1 − cos θ ) = 0 .
Kyun? Zero vector ke saath cross ya dot product zero hota hai, aur zero kuch bhi scale ho kar zero rehta hai. Koi length preserve nahi karni aur koi direction move nahi karni.
v ′ = ( 0 , 0 , 0 )
Verify: quaternion form mein v = ( 0 , 0 ) = 0 , aur q ⋅ 0 ⋅ q − 1 = 0 kisi bhi q ke liye — zero quaternion har rotation se fixed hai. Koi division-by-length kabhi nahi hoti (woh danger axis normalise karne mein hoti hai, vector rotate karne mein nahi), toh yeh degenerate input bilkul safe hai. ✓
Mnemonic Scenario reflexes
Axis par? → frozen (Cell B). Angle 0 ya 36 0 ∘ ? → identity (D/E). Zero vector? → zero rehta hai (J).
Negative angle = opposite spin = inverse quaternion (C).
18 0 ∘ = reflect : 2 n ^ ( n ^ ⋅ v ) − v (F).
Do rotations = q 2 q 1 , pehle rightmost , order matters karta hai (G).
q padho: θ = 2 arccos w , axis = v / sin 2 θ (I).
Recall Quick self-test
+ z ke baare mein + 9 0 ∘ turn + x ko kahaan bhejta hai? ::: + y
Rotation axis ke along vector kya ban jaata hai? ::: khud wahi (unchanged)
q aur − q ek vector ko kaise rotate karte hain? ::: identically (double cover)
"q 1 phir q 2 se rotate karo" compose karne ke liye single quaternion kya hai? ::: q 2 q 1
q = ( 0.5 , 0.5 , 0.5 , 0.5 ) diya ho toh rotation angle kya hai? ::: 12 0 ∘
Zero vector ko kisi bhi q se rotate karne par kya milta hai? ::: zero vector