বেশিরভাগ প্যারামেট্রিক ট্র্যাজেক্টোরিগুলির জন্য এই সমস্যার সমাধানটি প্রায় অনুমান করা সম্ভব। ধারণাটি নিম্নরূপ: আপনি যদি কোনও বাঁকায় গভীরভাবে জুম করেন তবে আপনি সেই মুহুর্তে বাঁকটিকে তার স্পর্শক থেকে নিজেকে বলতে পারবেন না।
এই অনুমানটি তৈরি করে, দুটি ভেক্টর (কিউবিক বেজিয়ার কার্ভের জন্য তিনটি ) ইত্যাদির চেয়ে বেশি কিছু করার দরকার নেই ।
সুতরাং একটি বক্ররেখা জন্য M(t) আমরা তার স্পর্শক ভেক্টর গনা dMdtt∥dMdT∥Δt∥dMdT∥ΔtLL÷∥dMdT∥
অ্যাপ্লিকেশন: চতুর্ভুজ বেজিয়ার বক্ররেখা
যদি বেজিয়ার কার্ভের কন্ট্রোল পয়েন্টগুলি , এবং তবে ট্রাজেক্টোরিটি এইভাবে প্রকাশ করা যেতে পারে:ABC
M(t)=(1−t)2A+2t(1−t)B+t2C=t2(A−2B+C)+t(−2A+2B)+A
সুতরাং ডেরাইভেটিভ হ'ল:
dMdt=t(2A−4B+2C)+(−2A+2B)
আপনার কেবল ভেক্টর এবং কোথাও সঞ্চয় করতে হবে। তারপরে, প্রদত্ত , আপনি যদি দৈর্ঘ্যের অগ্রসর হতে চান তবে আপনি এটি করুন:v⃗ 1=2A−4B+2Cv⃗ 2=−2A+2BtL
t = t + Ll e n gt h ( t ⋅ v)⃗ 1+ ভি⃗ 2)
কিউবিক বেজিয়ার কার্ভগুলি
একই যুক্তি চারটি নিয়ন্ত্রণ পয়েন্ট , , এবং সহ একটি বক্ররেখার সাথে প্রযোজ্য :একজনBCD
M(t)=(1−t)3A+3t(1−t)2B+3t2(1−t)C+t3D=t3(−A+3B−3C+D)+t2(3A−6B+3C)+t(−3A+3B)+A
ডেরাইভেটিভ হ'ল:
dMdt=t2(−3A+9B−9C+3D)+t(6A−12B+6C)+(−3A+3B)
আমরা তিনটি ভেক্টরকে পূর্বরূপ দেই:
v⃗ 1v⃗ 2v⃗ 3=−3A+9B−9C+3D=6A−12B+6C=−3A+3B
এবং চূড়ান্ত সূত্রটি হ'ল:
t=t+Llengt h ( t2⋅ v⃗ 1+ টি ⋅ ভি⃗ 2+ ভি⃗ 3)
নির্ভুলতার বিষয়গুলি
আপনি যদি কোনও যুক্তিসঙ্গত ফ্রেমরেটে চলেছেন তবে (যা ফ্রেমের সময়কাল অনুসারে গণনা করা উচিত) কাজ করার জন্য আনুমানিক জন্য যথেষ্ট ছোট হবে।এল
যাইহোক, আপনি চরম ক্ষেত্রে ক্ষেত্রে ভুল ব্যবহার করতে পারেন। যদি খুব বড় হয়, আপনি 10 অংশ ব্যবহার করে উদাহরণস্বরূপ গণনাটি করতে পারেন:এল
for (int i = 0; i < 10; i++)
t = t + (L / 10) / length(t * v1 + v2);