دگرگونسازی جهان — چگونه اشیا را در فضا جابهجا میکنیم؟ آموزش و یادگیری دگرگونسازی جهان — چگونه اشیا را در فضا جابهجا میکنیم؟ به صورت رایگان
چطور یک شیء رو جابهجا کنیم؟
خب، حالا فرض کنید یک Mesh داریم.
مثل همین مثلثِ ساده:
A = (0, 0, 0)
B = (1, 0, 0)
C = (0, 1, 0)

و میخوایم این مثلث رو از جاش برداریم و ببریم سمت راست.
مثلا میخوایم ۲ واحد در جهت X جابهجاش کنیم.

خب…
چیکار باید بکنیم؟
خیلی ساده!
کافیه به مختصات تمام ورتکس های مثلثمون، مقدار جابهجایی رو اضافه کنیم.
یعنی:
A = (0, 0, 0)
↓
A’ = (2, 0, 0)
و
B = (1, 0, 0)
↓
B’ = (3, 0, 0)
و
C = (0, 1, 0)
↓
C’ = (2, 1, 0)
حالا مثلث ما ۲ واحد به سمت راست رفته!

شکل مثلث تغییری نکرده.
فقط موقعیتش عوض شده.
اما نکته جالب اینجاست…
ما گفتیم میخوایم مثلث رو:
۲ واحد در جهت X
جابهجا کنیم.
یعنی جابهجایی ما خودش میتونه یک بردار(Vector) باشه:
T = (2, 0, 0)
حالا برای جابهجا کردن هر ورتکس، این بردار رو به موقعیتش اضافه میکنیم:
موقعیت ورتکس(Vertex Position) + بردار حرکت(Translation Vector)
به عنوان مثال:
A’ = A + T
A’ = (0, 0, 0) + (2, 0, 0)
A’ = (2, 0, 0)
پس چیزی که قبلا دربارهی Vector ها یاد گرفتیم، اینجا دوباره به کارمون اومد!
اگر بخوایم در چند جهت جابهجا بشیم چی؟
هیچ فرقی نمیکنه.
مثلاً فرض کنید میخوایم یک Object رو:
۳ واحد در X
۲ واحد در Y
و
۵ واحد در Z
جابهجا کنیم.
Translation Vector ما میشه:
T = (3, 2, 5)
و این Vector رو به موقعیت تمام Vertex های Object اضافه میکنیم.
مثلاً اگر داشته باشیم:
A = (1, 2, 3)
بعد از Translation:
A’ = A + T
A’ = (1, 2, 3) + (3, 2, 5)
A’ = (4, 4, 8)
Translation چیه؟
Translation یعنی جابهجا کردن یک Object بدون اینکه شکل، اندازه یا جهت(زاویه) اون رو تغییر بدیم.
و نکتهی جالب اینه که برای انجامش به چیز جدید و عجیبی نیاز نداشتیم.
فقط از چیزی که قبلا یاد گرفتیم استفاده کردیم:
Vector
یک Vector میتونه جابهجایی ما رو مشخص کنه.
و با اضافه کردن اون به موقعیت Vertex ها، میتونیم Geometry رو جابهجا کنیم.
اما…
فعلاً فقط میتونیم Object رو جابجا کنیم.
اگر بخوایم همین مثلث رو بچرخونیم چی؟
مثلاً:

چطور باید مختصات Vertex ها رو تغییر بدیم تا Object بچرخه؟
اینجا دیگه اضافه کردن یک Vector کافی نیست.
توی ترد بعدی، به یکی دیگه از Transformation های مهم می پردازیم:
Rotation