PDA

View Full Version : سوال: پرتاب توپ (الگوی حرکتی)



ahmadi3d_ali
یک شنبه 24 مرداد 1389, 16:58 عصر
با سلام
من یه توپ دارم قراره این توپ الگوی حر کتی شبیه زیر داشته باشه!
..................... --------------------------------
..... ------------------------------------------------------
-------------------------------------------------------------------
شرمنده یه مقدار شکل بد شد!
مثله یه تیر کمان که بعد از پرتاب به صورت بالا به زمین بر خورد می کنه!
من چندین با به اشکال مختلف کد نوشتم! ولی نتونستم چنین شکلی توپ را حرکت بدم!
لطفا در ساخت این الگو به من کمک کنید! می خوام خیلی طبیعی رفتار کنه!
ممنون

مصطفی ساتکی
یک شنبه 24 مرداد 1389, 19:02 عصر
براي اين دست كار شما تابع تعريف كنيد و Object رو تحت اون تابع حركت بديد.اگر يه Interface ويژال هم براش تعريف كنيد كه كاربر تابع مطلوبش بتونه وارد كنيد .يه تابع پيش فرض مثلاً y=x و سپس با spline طوري طراحيش كنيد كه كاربر بتونه با ماوس اين تابع رو تغيير بده نمونش تو كامپوننت VGSense هست.

ahmadi3d_ali
یک شنبه 24 مرداد 1389, 19:09 عصر
عزیزان من به جواب رسیدم!
و این جواب را میزارم تا دوستان هم استفاده کنند!

این کد را باید استفاده کنید!



var
i,x:integer;
begin
for I := 1 to 1000 do begin
canvas.LineTo(i,round(150-abs(sin(i/10)*10.0/(i/100))));
shape1.Left:=i;
shape1.Top:=round(150-abs(sin(i/10)*10.0/(i/100)));
form1.update;
shape1.Update;
sleep(5);
end;

SAASTN
دوشنبه 25 مرداد 1389, 06:26 صبح
فکر کنم این مسئله بیشتر به بخش الگوریتم مربوط بشه، ولی اگه بخوایم قضیه رو یکم علمی ترش بکنیم این کاری که شما می خوای انجام بدی شبیه سازی حرکت پرتابه است که تو فیزیک دبیرستان داشتیم. حرکت هم با یه سرعت اولیه و زاویه پرتاب شروع میشه و هر بار که جسم به زمین می خوره یکم انرژی از دست میده و یه حرکت جدید رو با سرعت کمتر شروع می کنه. اینم از بی خوابی بعد از سحر: