Cylinder height:60 radius:20
Box lengthsegs:1 widthsegs:1 heightsegs:1 length:150.686 width:19.1662 height:1.32181 mapcoords:on pos:[0.461072,104.456,3.73853] isSelected:on
Cylinder height:1 radius:200
for i=1 to 60 do(
at time (currenttime+5) animate on about $Cylinder01.pos rotate $Box01 -6 z_axis
at time (currenttime+25) animate on about $Cylinder01.pos rotate $Box01 0 z_axis
slidertime +=25
)
التون جانبا سلام
دوستان من فکر میکنم اصول اولیه رو با مثال های متعدد توضیح دادم
بقیش هم کافیه کد ودستور رو طبق اصول استفاده کنید
این تاپیک رو هم زمان عید و تحویل سال زدم وقت زیاد بود تاپیک رو پیش بردم
سلام
من امروز تازه این تاپیک رو دیدم
تاپیک خیلی خوبیه اما حیف مثل اینکه التون جان نمی تونه دست تنها ادامه بده البته حق هم داره کار خیلی سنگینه
من یک سالی هست مکس اسکریپت کار می کنم (البته مختص ریگینگ)
شاید به اندازه التون ندونم اما می تونم بهش تو این تاپیک کمک برسونم .
البته اگه دوستان موافق باشن
سلام
هر چی صبر کردیم کسی نیومد ادامه بده انگار التون جان حالا حالاها سرش شلوغه
ولی یه سئوال
من مختصات یک شیئ رو تو صفحه بدست میارم مثلا box1.pos.x$
جواب میشه مثلا 0.123456
حالا من این عدد رو میخوام کمی رند کنم
مثلا جوابمو کوچیک کنم به عنوان مثال 3 عدد اخرش هر چی که میخواد باشه حذف شه و بشه 0.123
حالا سوال اینجاست که چجوری اینکار رو بکنم .که وقتی موقعییت شیئ رو میگیرم خودش بره تا سه رقم بعد از اعشار رو برگردونه
البته خودم سعی کردم اینکار رو بکنم اول عدد بدست اومده رو به رشته تبدبل کردم و بعد 3 حرف اخرش رو حذف کردم ولی این کار محدودیتهایی داره که جالب نیست
برای این کار یه راه ساده هست باید عدد رو در 10 به توان اون رقم اعشار که می خوای ضرب کنی بعد Floor یا Ceil بگیری (بسته به اینکه می خوای به بالا رند کنی یا پایین) بعد بر 10 به توان تعداد ارقام تقسیم کنیمن مختصات یک شیئ رو تو صفحه بدست میارم مثلا box1.pos.x$
جواب میشه مثلا 0.123456
حالا من این عدد رو میخوام کمی رند کنم
مثلا جوابمو کوچیک کنم به عنوان مثال 3 عدد اخرش هر چی که میخواد باشه حذف شه و بشه 0.123
حالا سوال اینجاست که چجوری اینکار رو بکنم .که وقتی موقعییت شیئ رو میگیرم خودش بره تا سه رقم بعد از اعشار رو برگردونه
البته خودم سعی کردم اینکار رو بکنم اول عدد بدست اومده رو به رشته تبدبل کردم و بعد 3 حرف اخرش رو حذف کردم ولی این کار محدودیتهایی داره که جالب نیست
fn noth n y a=(
if a==0 then re=floor(n*(pow 10 Y))/(pow 10 y)
else re=ceil(n*(pow 10 Y))/(pow 10 y)
re
)
noth 1.23457 3 0
سلام
من mxs رو برای ریگینگ دارم استفاده می کنم و خیلی از پایه کار نکردم اما زیاد اسکریپت نوشتم
اگه بشه با هم این تاپیک رو پیش ببریم تا همه با هم بالا بریم
برای این کار یه راه ساده هست باید عدد رو در 10 به توان اون رقم اعشار که می خوای ضرب کنی بعد floor یا ceil بگیری (بسته به اینکه می خوای به بالا رند کنی یا پایین) بعد بر 10 به توان تعداد ارقام تقسیم کنی
مثل این اسکریپتی که نوشتم:
اگه a=0 باشه به پایین و اگه عدد دیگه ای باشه به بالا رند می کنه .کد:fn noth n y a=( if a==0 then re=floor(n*(pow 10 y))/(pow 10 y) else re=ceil(n*(pow 10 y))/(pow 10 y) re )
مثلا :
عدد 1.23457 رو تا 3 رقم اعشار به پایین رند می کنهکد:noth 1.23457 3 0
هدف اینه که موقعیت دو شیئ رو در صفحه مقایسه کنم و اگر دقیقه روی هم بودن فرمانی رو بدمسلام.
هدفتون از اینکار چیه؟
با دستور int میتونید کل رقم اعشارو از بین ببرید. (integer)
هدف اینه که موقعیت دو شیئ رو در صفحه مقایسه کنم و اگر دقیقه روی هم بودن فرمانی رو بدم
اما لزوما این دوشیئ دقیق دقیق و تا اخرین رقم اعشار روی هم نیستند و برای همین من میخوام که بیخیال دو رقم اخر بشم تا بتونم فرمان بعدی رو اعمال کنم
به عبارت دیگه نزدیکترین نقطه به موقعییت شیئ رو هم مرکز در نظر بگیرم و بتونم نزدیکترین شیئ رو انتخاب کنم
اگه مطلبو درست رسونده باشنم
سلامفرمول محاسبه فاصله بین دو نقطه :
کد:x = Sqr((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
دقیقا همین رو که گفتی میخوام گل گفتیاینکار اشتباهه. نباید قبل از مقایسه عدد رو گرد کنید.
اول بدون گرد کردن مختصات، فاصله بین دو شئ رو بدست بیارید، بعداً شرطی بزارید که مثلاً اگر فاصله از 2 واحد (یا هرچقدر که دوست دارید) کمتر بود، شرط رو برقرار کن.
مرسی اینم منو به جواب رسوند ممنونسلام
من MXS رو برای ریگینگ دارم استفاده می کنم و خیلی از پایه کار نکردم اما زیاد اسکریپت نوشتم
اگه بشه با هم این تاپیک رو پیش ببریم تا همه با هم بالا بریم
برای این کار یه راه ساده هست باید عدد رو در 10 به توان اون رقم اعشار که می خوای ضرب کنی بعد Floor یا Ceil بگیری (بسته به اینکه می خوای به بالا رند کنی یا پایین) بعد بر 10 به توان تعداد ارقام تقسیم کنی
مثل این اسکریپتی که نوشتم:
اگه a=0 باشه به پایین و اگه عدد دیگه ای باشه به بالا رند می کنه .کد:fn noth n y a=( if a==0 then re=floor(n*(pow 10 Y))/(pow 10 y) else re=ceil(n*(pow 10 Y))/(pow 10 y) re )
مثلا :
عدد 1.23457 رو تا 3 رقم اعشار به پایین رند می کنهکد:noth 1.23457 3 0