পতন এবং গতিবেগ বেগ গণনা কিভাবে?


9

আমি ল্যান্ডার গেম তৈরি করার কথা ভাবছি, যেখানে আপনি কোনও স্পেসশিপ নিয়ন্ত্রণ করেন এবং ক্র্যাশ না করে এটিকে অবতরণ করতে হবে। সময় সময় ইঞ্জিনগুলির সাথে সম্পর্কিত হয়ে পড়ার গতি বা ত্বরণকে গণনা করার একটি সহজ সূত্র কী?

উত্তর:


28

সহজ উপায় হ'ল ইউলার সংহতকরণ। আপনাকে অবস্থান ভেক্টর এবং বেগ ভেক্টর সংরক্ষণ করতে হবে। প্রতিটি ফ্রেমে:

  • সর্বশেষ ইন্টিগ্রেশন পদক্ষেপের পরে কেটে গেছে সময় পরিমাপ: dt
  • আপনার ইঞ্জিনগুলির কারণে ফোর্স ভেক্টর গণনা করুন: এফ
  • ত্বরণ ভেক্টর গণনা করুন: = এফ / এম যেখানে এম স্পেসশিপ ভর mass
  • মাধ্যাকর্ষণ ভেক্টর যুক্ত করুন: = + জি নিশ্চিত করে নিন যে জি গ্রহের কেন্দ্রের দিকে নির্দেশ করেছেন
  • বেগ ভেক্টর V = V + A · dt আপডেট করুন
  • এক্স ভিজার এক্স = এক্স + ভি · ডিটি অবস্থান আপডেট করুন

( এক্স scalars জন্য, এক্স ভেক্টর জন্য)

নিশ্চিত হন যে ডিটি ছোট ...

| জি | পৃথিবীর জন্য প্রায় 9.8 মি / সেঃ এবং চাঁদের জন্য প্রায় 1.6 মি / এস²

মহাকর্ষ মিথস্ক্রিয়ার কারণে ক্রিয়াকলাপটি ফোর্সটি হ'ল:

নিউটনের সর্বজনীন মাধ্যাকর্ষণ আইন

এটি প্রতিটি শরীরে প্রভাব ফেলে এবং এটি অন্যটির দিকে নির্দেশ করে।

জি স্কালে খুব বিখ্যাত মহাকর্ষীয় ধ্রুবক এটি সম্পর্কে 6.67e-011 এন (মি / কেজি) হল ² এর

যেহেতু আপনি ত্বরণে আগ্রহী:

ত্বরণ

আপনার ত্বরণটি গণনা করার জন্য আপনাকে কেবল গ্রহের ভর (এম 2) এবং ব্যাসার্ধ (আর) জানতে হবে।

সাধারণত ত্বরণ যা গ্রহকে আপনার মহাকাশযানের দিকে নিয়ে যায় তা নগণ্য কারণ সাধারণত এম 2 এর তুলনায় এম 1 নগণ্য।

যাইহোক, আপনি যদি একটি ছোট গ্রহাণুতে অবতরণের চেষ্টা করছেন তবে সম্ভবত আপনাকে সাধারণ সূত্রটি ব্যবহার করতে হবে দ্বিতীয় ধাপে মোট বল ভেক্টরটিতে সেই বল যোগ করা।

সম্পাদনা করুন:

হিসাবে বাস্তবায়নের কিছু ইঙ্গিত প্রয়োজন। আপনার প্রয়োজন হবে:

  • একটি ভেক্টর গ্রন্থাগার
  • ইঞ্জিন মডেল
  • ফিসিক্স মডেল
  • সংঘর্ষ সনাক্তকরণ
  • ব্যবহারকারী ইন্টারফেস (ইনপুট এবং গ্রাফিক উপস্থাপনা)

সমস্ত ভেক্টর লাইব্রেরির মধ্যে প্রথম: আপনার গেমটি মনো / দ্বি / গাছ / চারটি হতে পারে ... মাত্রিক, আপনি যতক্ষণ না আপনার ক্ষেত্রে কে 3 ডি শব্দের অভিক্ষেপ হিসাবে বিবেচনা করেন, শারীরিক রাউলগুলি ধরে রাখে।

যদি n আপনার পছন্দ মাত্রা হয় (সম্ভবত আপনার ক্ষেত্রে 2 বা 3), গ্রন্থাগারের অবশ্যই থাকতে হবে:

  • একটি ভেক্টর স্টোরেজ সত্তা (প্রতিটি ভেক্টরের জন্য n ভাসমান পয়েন্ট সংখ্যাগুলির একটি তালিকা)
  • একটি যোগ অপারেটর (উপাদান অনুসারে যোগফল)
  • একটি স্কেলার গুণক অপারেটর (প্রতিটি উপাদান একটি ফ্লোট দ্বারা গুণিত)
  • ভেক্টরগুলির মধ্যে একটি বিন্দু-গুণন (উপাদান অনুসারে উপাদানকে গুণ এবং সমস্তগুলি যোগ কর)
  • ভেক্টরের দৈর্ঘ্য (একটি ভেক্টরের ডট-মিটিপ্লাইড নিজেই দ্বারা বর্ধিত)

আপনি এমন একটি লাইব্রেরি ব্যবহার করতে পারেন যা এটি করে বা নিজে প্রয়োগ করে; একটি ভেক্টর স্ট্রাক্ট বা ক্লাস হতে পারে, পছন্দ আপনার is

প্রতিটি ইঞ্জিন দ্বারা বর্ণনা করা উচিত:

  • একটি ভেক্টর তার জোর শক্তি এবং দিক নির্দেশ করে
  • একটি স্কেলার যা সম্পূর্ণ বিদ্যুৎ ব্যবহারের সময় প্রতি সেকেন্ডে জ্বালানী ব্যবহারের ইঙ্গিত দেয়;

আপনার ব্যবহারকারী ইনপুট প্রতিটি ইঞ্জিনকে 0 (অব্যবহৃত ইঞ্জিন) এবং 1 (পূর্ণ শক্তি) এর মধ্যে থাকা একটি সংখ্যা সরবরাহ করতে ব্যবহৃত হবে: ইঞ্জিন (ব্যবহার) ফ্যাক্টর।

ইঞ্জিনের আসল ভরসা পেতে এবং উপলব্ধ সমস্ত ইঞ্জিনের সমস্ত ফলাফলের যোগফল দিতে তার থ্রাস্ট ভেক্টরের জন্য ইঞ্জিন ফ্যাক্টরকে গুণান; এটি আপনাকে দ্বিতীয় ধাপের এফ দেবে ।

আপনার ইঞ্জিন ফ্যাক্টরটি প্রতিটি ইঞ্জিনের জন্য আসল জ্বালানী ব্যবহার জানতে ব্যবহার করা যেতে পারে: জ্বালানী ব্যবহারের মাধ্যমে এবং তাত্ক্ষণিক জ্বালানী ব্যবহারের জন্য ডিটি দিয়ে ইঞ্জিন ফ্যাক্টরকে গুণান ; মোট জ্বালানী ক্ষমতা পরিবর্তনশীল থেকে আপনি এই মানটি বিয়োগ করতে পারেন (এটি যদি আপনার জ্বালানী ভর বিবেচনাযোগ্য হয় তবে আপনার মোট ভর এম আপডেট করার সুযোগ দেয় )।

এখন আপনি নতুন অবস্থানটি গণনা করতে ইন্টিগ্রেশন ব্যবহার করে এগিয়ে যেতে পারেন, আপনার গ্রহের পৃষ্ঠের সাথে সংঘর্ষের জন্য পরীক্ষা করতে পারেন; যদি কোনও হয় তবে ল্যান্ডিংটি সাফল্য বা বিপর্যয় কিনা তা বলতে বেগ বেগের দৈর্ঘ্যটি ব্যবহার করুন।

স্পষ্টতই অন্য সংঘর্ষের চেকগুলি করা / করা উচিত, কিছু পৃষ্ঠ সত্তাকে ল্যান্ডিং পয়েন্ট হিসাবে অনুমোদিত করা যায় না যাতে প্রতিটি সংঘর্ষ মারাত্মক হয় one

আমি কীভাবে ইনপুট পাব এবং কীভাবে আপনার স্পেসশিপটি আপনাকে রেন্ডার করব তা ছেড়ে দিয়েছি; উদাহরণস্বরূপ, ফ্রেম দ্বারা ইঞ্জিনের স্থিতি ফ্রেম রেন্ডার করতে আপনি ইঞ্জিন ফ্যাক্টরটি ব্যবহার করতে পারেন।


এটি দুর্দান্ত, তবে কোডে এটি কীভাবে কার্যকর করা যায় সে সম্পর্কে কিছু ধারণা দুর্দান্ত।
ডিভোল

1
যেখানে আমি পদার্থবিজ্ঞান শিখলাম shiffman.net/teaching/nature
মিং-টাং

এই লোকটি তার পদার্থবিজ্ঞান জানে!
এমজিজেরো

7

অন্যান্য দুর্দান্ত উত্তরটি কিছুটা তাত্ত্বিক বলে মনে হচ্ছে, এখানে সহজ কোড সংস্করণটি রয়েছে:

// Position of the lander:
var positionX =  100.0;
var positionY = 100.0;

// Velocity of lander
var velocityX = 0.0;
var velocityY = 0.0;

// Acceleration due to gravity
var gravity = 1.0;

// If the player is pressing the thrust buttons
var isThrusting = false;
var isThrustingLeft = false;
var isThrustingRight = false;

// Thrust acceleration
var thrust = -2.0;

// Vertical position of the ground
var groundY = 200.0;

// Maximum landing velocity
var maxLandingVelocity = 3.00;    

onUpdate()
{
    velocityY += gravity;

    positionX += velocityX;
    positionY += velocityY;

    if (isThrusting)
    {
        velocityY += thrust;
    }

    if (isThrustingLeft)
    {
        velocityX += thrust;
    }
    else if (isThrustingRight)
    {
        velocityX -= thrust;
    }

    if (positionY >= floorY)
    {
        if (velocityY > maxLandingVelocity)
        {
            // crashed!
        }
        else
        {
            // landed successfully!
        }
    }
}

2
এটি সহজ রাখা। আমি আশা করি এটি তার সন্ধানের লাইনের পাশাপাশি রয়েছে।
বেসকা

2

দুর্ভাগ্যক্রমে, এখানকার গণিত লোমশ হয়ে যায়। এফএক্সআইআইআই এর উত্তর একটি পতনযোগ্য বস্তুর সাধারণ ক্ষেত্রে ভাল তবে আপনি একটি রকেটের কথা বলছেন - এবং রকেট জ্বালিয়ে দেয়।

আমি কোডটি দেখেছি যা এটি করে তবে এটি সম্পূর্ণ অনির্ধারিত ছিল এবং আমি এর পিছনে গণিতটি বের করতে কখনই পরিচালনা করতে পারি নি। যদি আপনি কোনওভাবেই সিপিইউ-সীমিত না হন তবে আমি এটিকে বিরক্ত করব না এবং কেবল এটিকে জোর করবো না - FxIIIs পদ্ধতিটি খুব স্বল্প সময়ের জন্য প্রয়োগ করা হয় এবং থ্রাস্ট সামঞ্জস্য করে (বা জ্বালানী ব্যবহারের জন্য যদি আপনি রকেটের থ্রোটলগুলি ফিঙ্গার হিসাবে জ্বলতে থাকে তবে বজায় রাখতে পারে রকেট জ্বালানী জ্বালিয়ে দেওয়া হিসাবে প্রতিটি পুনরাবৃত্তির মধ্যে নির্দিষ্ট চাপের পরিবর্তে নির্দিষ্ট ত্বরণ)।


জ্বালানীর বাইরে যাওয়া কেবল একটি হ্রাস পরামিতি উপস্থাপন করে। এটি হ্রাসযোগ্য মান সহ কেবল একটি ভেক্টোরিয়াল শক্তি। আমি কি ভূল? একটি সাধারণ ক্ষেত্রে আপনার F এর বিপরীতে জি রয়েছে, যেখানে এফ রকেটের ইঞ্জিন এবং জি পৃথিবীর মহাকর্ষ: এই ক্ষেত্রে আপনাকে কেবল একে অপরের বিপরীতে উভয়ই পরিমাপ করতে হবে, সুতরাং যদি কোনও জ্বালানী না থাকে তবে F 0 তে পড়ে যায় তাই আপনি কেবল আপনার অবজেক্টে ভেক্টোরিয়াল ফোর্স হিসাবে জি প্রয়োগ করতে হবে। এফ এর প্রতিটি মানের জন্য কাজ করে যতক্ষণ F> = জি অবজেক্টটি "এফ এর দিকে চলে"
ডিমনফায়ার300

2
@ ডেমনফায়ার ৩০০: আপনি ভুল বুঝেছেন - আমি জ্বালানী ফুরিয়ে যাওয়ার প্রভাবের কথা বলছি না, জ্বলন্ত জ্বালানীর প্রভাব সম্পর্কে বলছি। আপনার ইঞ্জিনে একটি ধ্রুবক থ্রোটল সেটিং ক্রমাগত আরোহণের ত্বরণের চিত্র তৈরি করে, একটি ধ্রুবক ত্বরণ একটি ক্রমাগতভাবে কমতে থাকা জ্বালানী বার্নের হার উত্পাদন করে। এর অর্থ FxIII দেয় এমন সাধারণ গণনাগুলি ভুল জ্বালানীর ব্যবহারের সংখ্যা তৈরি করে।
লরেইন পেচটেল

জ্বালানী পুড়ে যাওয়ার সাথে সাথে এ = এফ / এম থেকে ত্বরণ লাভের পরিমাণ তুচ্ছ মূল্য হতে চলেছে যদি না যানবাহনে জ্বালানী ভরর অনুপাত অযৌক্তিকভাবে বেশি হয় বা জ্বালানী পোড়া হার একইভাবে বেশি না হয়। এটি একটি খেলা, সর্বোপরি।
প্যাট্রিক হিউজেস

@ পেট্রিক হিউজেস: সত্যিকারের রকেট ল্যান্ডার দ্বারা চালিত জ্বালানির পরিমাণ (আমি মঙ্গল গ্রহের বিমান / রকেট সংকর ক্ষেত্রে গণনা করছি না) এর মোট ওজনের একটি উল্লেখযোগ্য অংশ। জ্বালানী ধরে নেওয়া: ত্বরণ অনুপাত ঠিক করা খুব ভুল উত্তর দেবে।
লরেইন পেচটেল 16:25

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