شبیه سازی حرکت توپ

prince_Persia_7

Well-Known Member
امروز داشتم واسه امتحان فیزیک میخوندم که یهو به ذهنم خورد چطوره قوانین فیزیک رو تو تری دی مکس پیاده کنم. بعد تصمیم گرفتم با استفاده از معادله سرعت یعنی :​
y=-1/2gtt+v0t+y0​
حرکت یک توپ رو با مکس اسکریپت پیاده سازی کنم . خلاصه تمام وقت امروزم صرف برنامه نویسی شد.​
خب حالا یه سری توضیحات در مورد کدهایی که نوشتم میدم. (کد ها رو از پایین دانلود کنید)​
برای اجرای کدهای اسکریپت توی محیط مکس دکمه ی F11 رو بزنید. سپس در پنجره ی باز شده از File گزینه ی New رو بزنید تا یه پنجره دیگه باز بشه. حالا تمامی کد ها رو کپی کرده و در این پنجره Paste کنید. و در آخر هم برای اجرا دکمه Crtl+E رو بزنید.​
حالا میرم سراغ توضیحات در مورد کدها:​
در 8 خط اول کد من چند تا متغیر قرار دادم که اگه توی مقادیر عددی شون دستکاری کنید حالت ها و شرایط مختلف شبیه سازی میشه.(متغیر های دیگه رو نباید دستکاری کرد) در مورد هرکدوم از متغیر ها هم توی عکس زیر توضیحشو نوشتم.​
اما در مورد کد زیر :​
2j65eamz7bdodu1plirz.jpg
به دلیل این که فریم های انیمیشن به صورت گسسته هستند و نه پیوسته به همین دلیل من مجبور شدم جاهایی که موقعیت توپ در سطح منفی هست اون رو در سطح صفر قرار بدم . البته چون من تازه دارم با مکس اسکریپ کار می کنم و هنوز با کدهای اون خیلی کم آشنا هستم از این روش استفاده کردم.​
نکته : بهتره از واحدهای پیشفرض خود مکس استفاده کنید. یعنی توی Unit Setup واحد ها رو روی Generic Unit بزارین.​
در ضمن بازم میگم من در MaxScript خیلی مبتدی هستم . مطمئنا راههای خیلی بهتری هم برا کد نویسی وجود داره که ایشالا در آینده یاد میگیرم.
کد:
    o=60
    v=2
    Fr=0.85
    F_A=2
    g=9.8
    r=20
    f=30
    n=100
    
    v=v*f
    i=0
    
    k=sphere()
    k.radius=r
    k.segs=30
    k.pos.z=50
    animate on
(
    for t=0 to n do
    (
        at time t 
        (
            (k.pos.z=(  (-0.5*(g+F_A)*i*i)+(v*i))+o )
            i=(i+1)
            up=(v*v*0.5/g+o)
            o=0
            if (k.pos.z==up) then
            (
                F_A=F_A*(-1)
                v=(sqrt(2.0*g*up))
            )
                
            if (  (k.pos.z<=0) )
            then 
            ( 
                k.pos.z=0
                i=1
                if (t!=0) then
                v=v*Fr
            )
        )
    )
)
 

پیوست ها

  • Toop_Script.jpg
    Toop_Script.jpg
    187.7 کیلوبایت · بازدیدها: 12
  • Toop_Script.rar
    359 بایت · بازدیدها: 10

Baloot3D

مسئول بخش سخت افزار سه بعدی
سلام دوست من

این خیلی خوب هست که دست روی قسمت بسیار حرفه ای مکس گذاشتی و اگر خوب کار کنی میتونی پیشرفت زیادی داشته باشی چون در این گرایش افراد کمی کار میکنند .
در مورد این کدی هم که نوشتی جون پلاگینهایی مثل PhysX و RayFire یا حتی خود MassFX داخلی مکس این کار رو خیلی دقیق و سریع انجام میدن ،شاید برای خیلی ها چیز خاصی به چشم نیاد ولی همین که یک خط از این کدها رو هم خودت نوشته باشی عالی هست چون اگر ادامه بدی مطمئناً در آینده ای نزدیک چیزهایی رو مینویسی که دیگه براش پلاگینی نیست . :neutral:

موفق باشی و حتماً ادامه بده :rose:
 

Baloot3D

مسئول بخش سخت افزار سه بعدی
من کد رو اجرا کردم ، جالب بود .
سرعت اجراش بالا بود که با اسکیل کردن فریم ها به 300 خیلی بهتر شد . ایجاد اشیاء و انیمیتشون با این روش خیلی جالب بود :rose:

ممنون و حتماً ادامه بده و اینجا بذار . از راهنمایی های دوستانی چون Amin 4D جان و سایرین هم استفاده کن . دوستی به نام آقا مصطفی هم هست که تجریبات زیادی در این مورد داره .

موفق باشی :rose:
 

prince_Persia_7

Well-Known Member
من کد رو اجرا کردم ، جالب بود .
سرعت اجراش بالا بود که با اسکیل کردن فریم ها به 300 خیلی بهتر شد . ایجاد اشیاء و انیمیتشون با این روش خیلی جالب بود :rose:

ممنون و حتماً ادامه بده و اینجا بذار . از راهنمایی های دوستانی چون Amin 4D جان و سایرین هم استفاده کن . دوستی به نام آقا مصطفی هم هست که تجریبات زیادی در این مورد داره .

موفق باشی :rose:
ممنون از شما .از تجربیات دوستان حتما استفاده می کنم.
البته میخوام کار رو کامل ترش کنم. به این صورت که توپ روی زمین هم راه بره یعنی در دو محور X و y هم حرکت کنه . به یه نتایجی هم رسیدم. بعدا کدهاش رو هم میزارم :cool:
 
آخرین ویرایش:

hsib2

Member
دوست من به شما تبریک میگم و این شروع یک راه تازه است دوست دارم یه روز بیای و بگی یه نرم افزار ساختم که خیلی تخصصی تر از 3d max هست و این محال نیست . فقط کافیه خودت رو باور کنی و اینکه این جسارت را خرج دادی و علوم دیگه را با نرم افزار مکس ترکیب کردی هم موفقیت بزرگیه برات ارزوی موفقیت دارم .

راستی من به اسکریپ نویسی در مکس خیلی علاقه دارم البته سی دی های cg academy را دیدم اگه منابعی آموزشی را برای من برای دانلود معرفی کنی ازت ممنون میشم .
 

arminAnim

کاربر متخصص
برای شروع خوبه. البته منحنی های حرکتیش سینوسی هست و نیاز به اصلاح داره تا شبیه سازی درستی بشه

درضمن اینجا منتظر استقبال نباشید. استقبالی که از اسکریپت شما شده از پلاگین 1700 خطی ِ من بیشتره! ;)
 

prince_Persia_7

Well-Known Member
دوست من به شما تبریک میگم و این شروع یک راه تازه است دوست دارم یه روز بیای و بگی یه نرم افزار ساختم که خیلی تخصصی تر از 3d max هست و این محال نیست . فقط کافیه خودت رو باور کنی و اینکه این جسارت را خرج دادی و علوم دیگه را با نرم افزار مکس ترکیب کردی هم موفقیت بزرگیه برات ارزوی موفقیت دارم .

راستی من به اسکریپ نویسی در مکس خیلی علاقه دارم البته سی دی های cg academy را دیدم اگه منابعی آموزشی را برای من برای دانلود معرفی کنی ازت ممنون میشم .
ممنون از شما . راستش من اطلاع دقیقی از منابع آموزشی مکس اسکریپت ندارم. ولی برای شروع این فروم خیلی خوبه
http://forum.p30world.com/showthread.php?t=315161
البته اگه اگه مث من قبلا ++C کار کرده باشی خیلی راحت تر درک میکنی.
 

جدیدترین ارسال ها

بالا