আমি কীভাবে দুটি ভেক্টরের মধ্যে রৈখিকভাবে বিভক্ত করব?


16

আমার গতিবেগ ভেক্টরটি রয়েছে যেখানে আমার ক্লায়েন্টটি কোথায় এবং এটি কোথায় চলছে এবং আমার একই ভেক্টরটি রয়েছে যা ক্লায়েন্টটি কোথায় থাকতে হবে তা জানিয়ে সার্ভার থেকে আসে। কখনও কখনও এটি কিছুটা আলাদা হয়, তাই আমি আমার বর্তমান অবস্থানের মধ্যে সার্ভারের সঠিক অবস্থানের সাথে বিভক্ত করতে চাই।

এখানে চিত্র বর্ণনা লিখুন

কালো তীর হ'ল ক্লায়েন্টের বেগ ভেক্টর, লাল তীরটি সার্ভারে ক্লায়েন্টের বেগের ভেক্টর এবং নীল তীরটি হ'ল আমি গণনা করতে এবং ইন্টারপোল্ট করতে চাই।

আমি কীভাবে নীল ভেক্টর গণনা করব? তারপরে, আমি কীভাবে তাদের মধ্যে রৈখিক বিভাজন করতে পারি?

উত্তর:


18

নীল ভেক্টর সহজেই গণনা করা যায়: লাল - কালো (ভেক্টরগুলির মধ্যে চিহ্নটি বিয়োগ) is তবে আপনি যদি কেবল কালো এবং লাল রঙের ভেক্টরটির মধ্যে বিভক্ত করতে চান তবে আপনাকে এটি গণনা করতে হবে না। লিনিয়ার অন্তরঙ্গকরণ কেবল লিনিয়ার সংমিশ্রণ। সুতরাং আপনি কেবল নিতে পারেন: আলফা * কালো + (1 - আলফা) * লাল, যেখানে আলফা হতে হবে বিরতি <0,1> থেকে। যদি আলফা 1 হয়, তবে আপনি কালো ভেক্টর পাবেন, যখন আলফা 0 হবে, আপনি লাল ভেক্টর পাবেন।

এবং যদি আমি এটি সঠিকভাবে বুঝতে পারি তবে আপনি সময় মতো এই ভেক্টরগুলির মধ্যে বিভক্ত হবেন। সুতরাং ঠিক সময়ে আলফা ডান বর্ধন চয়ন করুন।

আমি কি ঠিক বুঝতে পেরেছি? বা আপনি সম্পূর্ণরূপে পৃথক কিছু বোঝাতে চেয়েছিলেন?


হ্যাঁ, আপনি ঠিক আমাকে পেয়েছেন। আরও একটি প্রশ্ন, আমি কীভাবে ভেক্টরের জন্য সংখ্যাটি বাড়িয়ে দেব? এই অপারেশনটি কি আমাকে নতুন ভেক্টর ফিরিয়ে দেবে? উদাহরণস্বরূপ, লাল একটি ভেক্টর (0, 10) যার দৈর্ঘ্য 8 এবং কালো 4-দৈর্ঘ্য সহ (-2, 5) হয় আমি কীভাবে আলফা * কালো বা (1 - আলফা) * লাল করব? ধন্যবাদ.
gmemaro

আপনি কেবল প্রতিটি ভেক্টরকে পৃথক পৃথকভাবে স্থানাঙ্ককে গুণান। যদি আলফা উদাহরণস্বরূপ 0.5 হয় তবে আলফা * কালো + (1 - আলফা) * লাল = (0,5) + (-1, 2.5) = (-1, 7.5) - আপনি যদি এটি কোনও কাগজে আঁকেন তবে আপনি সত্যই এটি দুটি ভেক্টরের মধ্যে দেখতে পাবেন।
জাকারমার্জ

10

এই ছবি তোলা:

এখানে চিত্র বর্ণনা লিখুন

এবি হ'ল এ থেকে বি পর্যন্ত লাল ভেক্টর is

বলুন পি হ'ল এ থেকে বি যাওয়ার 25% পথ

A + ( B - A ) / 4
= 3/4 A   +   B / 4

সুতরাং 3/4 এ এবং 1/4 বি।

এটির সন্ধানের আরেকটি উপায় বলছে যে আপনি A এর 75% "কাছাকাছি", এবং 25% বি এর "কাছাকাছি" চান (একটি ভেক্টর যা A এর 100% "কাছাকাছি" কেবলমাত্র একটি ভেক্টর।)

সুতরাং আপনি পি হিসাবে এটি সন্ধান করতে সক্ষম হবেন:

A*t + (1-t)*B

টি = 0.75 সহ (এ এর 75% "কাছাকাছি" বলতে)

0.75A + 0.25B

সুতরাং ভেক্টর 3f শ্রেণীর জন্য সিতে একটি সাধারণ এলইআরপি ফাংশন হবে:

static Vector3f lerp( const Vector3f& A, const Vector3f& B, float t ){
  return A*t + B*(1.f-t) ;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.