গল্ফ বল ট্রাজেক্টোরি সমীকরণে বায়ু টান যোগ করা


10

আমি VB.NET 2005 এ 2 ডি গল্ফ গেমটি বিকাশ করছি, তবে আমি কীভাবে বায়ু বা বায়ু টানা প্রয়োগ করতে পারি যাতে বলটি প্রভাবিত হয়।

ইতিমধ্যে আমার অনুমানের জন্য এই সমীকরণগুলি রয়েছে:

  • v0আঘাত করা বা নিক্ষেপ করা হলে গল্ফবলের প্রাথমিক গতির জন্য v 0
  • উল্লম্ব এবং অনুভূমিক উপাদানগুলি গল্ফবলের বেগ:

    vx=v0cos(θ)vy=v0sin(θ)gt
  • গল্ফবলের উল্লম্ব এবং অনুভূমিক দূরত্ব:

    x=v0cos(θ)ty=v0sin(θ)t(0.5)gt2

গল্ফ বলের বেগকে সঠিকভাবে প্রভাবিত করতে আমি এই সমীকরণে এয়ার ড্র্যাগ কীভাবে যুক্ত করব? এটি কীভাবে করবেন তা সম্পর্কে আমার কোনও ধারণা নেই, কেউ কি সমান সমীকরণ নিয়ে কাজ করেছেন?

উত্তর:


10

আমি নিশ্চিত না যে এমনকি এখানে টানা বা বাতাসের জন্য কোনও বদ্ধ ফর্ম উপস্থিত রয়েছে কি না তবে ধাপে ধাপে ফ্যাশনে এটি অনুকরণ করা বেশ সহজ (যেমন সমস্ত পদার্থ বিজ্ঞানের লাইব্রেরি করে):

  1. আপনার প্রাথমিক শর্ত সেট করুন:

    x,y,vx,vy(for t=0)
  2. আপডেট অবস্থান:

    x=x+(vx×dt)y=x+(vy×dt)

    (যেখানে সর্বশেষ আপডেটের পরে সময়টি অতিক্রান্ত হয়, ওরফে ডেল্টা সময়)

  3. এই বেগ সহায়কদের গণনা করুন:

    v2=(vx)2+(vy)2|v|=v2

    (যেখানে দৈর্ঘ্য প্রতিনিধিত্ব করে বনাম )|v|v

  4. ড্র্যাগ ফোর্স গণনা:

    fdrag=c×v2

    (যেখানে সি ঘর্ষণ ক্ষুদ্র হয়! )

  5. শক্তি জমে:

    fx=(fdrag×vx|v|)fy=(fdrag×vy|v|)+(g×mass)

    (যেখানে আপনার গলফ বল ভর হয়)mass

  6. আপডেট বেগ:

    vx=vx+fx×dtmassvy=vy+fy×dtmass

মূলত এই পদার্থবিজ্ঞানের আনুমানিক জন্য ইউলারের পদ্ধতি


মন্তব্যগুলিতে অনুরোধ অনুসারে সিমুলেশন কীভাবে আরও খানিকটা:

  • প্রাথমিক অবস্থা (t=0)আপনার ক্ষেত্রে

x=0y=0vx=v0×cos(θ)vy=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

এর জন্য আপনাকে অনেক ধন্যবাদ, আমি এটি আপনার কাছে ফিরে পাওয়ার চেষ্টা করব।
স্মিথ

আপনি যে সমীকরণগুলি সরবরাহ করেছেন সেগুলি থেকে, আমি বর্তমান এক্স & ওয়াইকে একটি সময় দেওয়ার (টি) জন্য পেতে চাই, আমি কি আমার ভিওকে ভি_এক্স এবং ভিওকে v_y এর সাথে প্রতিস্থাপন করব? এছাড়াও যদি বলটি গুলি চালানো হয়েছিল এমন প্রাথমিক কেই যোগ করার দরকার হয় তবে এটি KE=0.5*m*(V*V)কী বৈধ হবে?
স্মিথ

@ স্মিথ আমি আপনার প্রশ্নের অ্যাকাউন্টে আমার উত্তর সম্পাদনা করব
জোনাস বেটেল

আমি ঠিক তাই করেছি এবং এক্স সর্বদা নেতিবাচক, কেন?
স্মিথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.