আমি নিশ্চিত না যে এমনকি এখানে টানা বা বাতাসের জন্য কোনও বদ্ধ ফর্ম উপস্থিত রয়েছে কি না তবে ধাপে ধাপে ফ্যাশনে এটি অনুকরণ করা বেশ সহজ (যেমন সমস্ত পদার্থ বিজ্ঞানের লাইব্রেরি করে):
আপনার প্রাথমিক শর্ত সেট করুন:
x,y,vx,vy(for t=0)
আপডেট অবস্থান:
x=x+(vx×dt)y=x+(vy×dt)
(যেখানে সর্বশেষ আপডেটের পরে সময়টি অতিক্রান্ত হয়, ওরফে ডেল্টা সময়)
এই বেগ সহায়কদের গণনা করুন:
v2|v|=(vx)2+(vy)2=v2−−√
(যেখানে দৈর্ঘ্য প্রতিনিধিত্ব করে বনাম )|v|v
ড্র্যাগ ফোর্স গণনা:
fdrag=c×v2
(যেখানে সি ঘর্ষণ ক্ষুদ্র হয়! )
শক্তি জমে:
fxfy=(−fdrag×vx|v|)=(−fdrag×vy|v|)+(−g×mass)
(যেখানে আপনার গলফ বল ভর হয়)mass
আপডেট বেগ:
vx=vx+fx×dtmassvy=vy+fy×dtmass
মূলত এই পদার্থবিজ্ঞানের আনুমানিক জন্য ইউলারের পদ্ধতি ।
মন্তব্যগুলিতে অনুরোধ অনুসারে সিমুলেশন কীভাবে আরও খানিকটা:
- প্রাথমিক অবস্থা (t=0)আপনার ক্ষেত্রে
xyvxvy=0=0=v0×cos(θ)=v0×sin(θ)
এটি মূলত আপনার বেসিক ট্র্যাজেক্টরি সূত্রের মতোই যেখানে টি এর প্রতিটি ঘটনাকে 0 দ্বারা প্রতিস্থাপন করা হয়।
গতিসম্পর্কিত শক্তি প্রত্যেক জন্য বৈধ টিKE=0.5m(V2)tv2
সম্ভাব্য শক্তি PE=m×g×y
আপনি বর্তমান পেতে চান একটি প্রদত্ত জন্য টি 1 , তুমি যা করতে হবে তা জন্য সিমুলেশন আরম্ভ টি = 0 এবং যতক্ষণ ছোট DT আপডেট না(x,y)t1t=0t=t1
(x,y)t1t2t1<t2t1t2
সুডোকোড:
simulate(v0, theta, t1)
dt = 0.1
x = 0
y = 0
vx = v0 * cos(theta)
vy = v0 * sin(theta)
for (t = 0; t < t1; t += dt)
x += vx * dt
y += vy * dt
v_squared = vx * vx + vy * vy
v_length = sqrt(v_squared)
f_drag = c * v_squared
f_grav = g * mass
f_x = (-f_drag * vx / v_length)
f_y = (-f_drag * vy / v_length) + (-f_grav)
v_x += f_x * dt / mass
v_y += f_y * dt / mass
end for
return x, y
end simulate