একটি ধ্রুবক গতিতে সরানোর জন্য ক্যাটমুল-রোম স্প্লাইনের আর্ক-দৈর্ঘ্য নির্ধারণ করুন


18

আমার এমন একটি পথ রয়েছে যা ক্যাটমুল-রোমের স্প্লাইজের সংমিশ্রণ দ্বারা সংজ্ঞায়িত। আমি এক্সএনএ-তে স্থিতিশীল পদ্ধতি ভেক্টর 2.গ্রিকমুলআরম ব্যবহার করি যা 0 থেকে 1 এর মান সহ পয়েন্টগুলির মধ্যে প্রসারণের অনুমতি দেয়।

এই পথে প্রতিটি স্প্লিনের দৈর্ঘ্য একই হয় না। পথটি এগিয়ে যাওয়ার সময় আমি যদি প্রতিটি স্প্লাইনের জন্য ওজনকে একটি ধ্রুবক গতিতে যেতে দেয় তবে গতির পার্থক্যের কারণ হয়। আমি ওজনটির গতি স্প্লাইনের দৈর্ঘ্যের উপর নির্ভর করে এই প্রতিকার করতে পারি। আমি কীভাবে এই জাতীয় স্প্লাইনটির দৈর্ঘ্য নির্ধারণ করতে পারি? 10 টি সরলরেখায় স্প্লাইন কেটে আমি তাদের দৈর্ঘ্য যোগ করে কি আনুমানিক উচিত?

আমি স্প্লাইলেস দ্বারা সংজ্ঞায়িত জেনারেশনে গতিশীল টেক্সচার ম্যাপিংয়ের জন্য এটি ব্যবহার করছি।

উত্তর:


25

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

একটি ভেরিয়েবল-রেটে আমাদের প্যারামিট্রিক প্যারামিটার (যে প্যারামিটারটি 0 থেকে 1 হয়ে যায়, যা আমি sবিভ্রান্তি এড়াতে কল করব t = time) পরিবর্তনশীল-হারে পরিবর্তনের জন্য একটি আরও ভাল সমাধান হতে পারে ds/dt, যা আপনি গতি দ্বারা নির্ধারণ করা হয় যে আপনি কোন গতিতে অবজেক্টটি চলতে চান? বক্ররেখা যে বিন্দু। সুতরাং অন্য কথায়, sপ্রতিটি ফ্রেম 0.01 পরিবর্তে পরিবর্তে , আমরা এটি 0.005 এক ফ্রেম, পরের 0.02 ইত্যাদি দ্বারা পরিবর্তন করতে পারি etc.

আমরা প্রতিটি ফ্রেমের x( dx/ds) এবং y( dy/ds) এর ডেরাইভেটিভগুলি গণনা করে সেটিংস করে এটি করি

ডিএস / ডিটি = স্পিড / স্কয়ার্ট ((ডিএক্স / ডিএস) 2 + (ডিআই / ডিএস) 2 )

এটি হ'ল আমরা যে গতিতে যেতে চাইছি তা গ্রহণ করে এবং আমরা যদি sএকটি নির্দিষ্ট বর্ধিত স্থানে পরিবর্তন আনছিলাম তবে আমরা যে গতিতে যাচ্ছিলাম তার দ্বারা ভাগ করে নেওয়া ।


প্রমাণ

আমরা আমাদের বস্তুর গতি স্থির রাখতে চাই; এই ধ্রুবক নাম দিন speed

আমরা দ্বিতীয় বছরের ক্যালকুলাসে শিখি যে, প্যারামেট্রিক সমীকরণের জন্য x(s)এবং y(s),

গতি = স্কয়ার্ট ((ডিএক্স / ডিটি) 2 + (ডিসি / ডিটি) 2 )

আমরা এটাও শিখি

dx / dt = dx / ds * ds / dt     (চেইন রুল)

সুতরাং,

গতি = স্কয়ার্ট ((ডিএক্স / ডিএস)) 2 (ডিএস / ডিটি) 2 + (ডিআই / ডিএস) 2 (ডিএস / ডিটি) 2 )

জন্য সমাধান ds/dt, আমরা উল্লিখিত সমীকরণ পেতে।


ডেরিভেটিভস গণনা করা হচ্ছে

আমি কখনই সেই বিশেষ স্প্লিটগুলির সাথে কাজ করি নি, তবে আমি বুঝতে পারি তারা কেবল দেয় x(s)এবং y(s)ঘনক সমীকরণের ক্ষেত্রে s। সুতরাং, আমরা dx/dsসহজেই ডেরাইভেটিভ খুঁজে পেতে পারি : যদি

x (গুলি) = এ * এস 3 + বি * এস 2 + সি * এস + ই

তারপর

dx / ds = 3a * s 2 + 2b * s + c

(একই জন্য dy/ds) অবশ্যই, আপনি সঠিক মান জানা প্রয়োজন করব a, bএবং cএই কাজ করতে। এই পৃষ্ঠা অনুসারে , এই মানগুলি সন্ধান করা সহজ।


শেষ অবধি, শিরোনামে প্রশ্নের উত্তর দেওয়ার জন্য: প্যারাম্যাট্রিক ক্রিয়াকলাপের চাপ-দৈর্ঘ্যের সমীকরণ সন্ধান করা মোটামুটি জটিল সুনির্দিষ্ট অবিচ্ছেদ্য সমাধানের সাথে জড়িত ; এমনকি কিউবিক-সমীকরণের সাধারণ ক্ষেত্রে, এটি সাধারণত করা যায় না।

সুতরাং, আপনাকে সংখ্যার সাথে অবিচ্ছেদ্য অনুমান করতে হবে । "স্প্লাইনটি 10 ​​টি সরলরেখায় কাটা এবং তাদের দৈর্ঘ্যের সংমিশ্রণ" আপনার পরামর্শ অনুসারে এটি করার একটি খুব সহজ উপায় ; তবে কিছুটা জটিল পদ্ধতি রয়েছে যা আপনাকে কম লাইন-সেগমেন্টগুলি ব্যবহার করে আরও অনেক বেশি সঠিক ফলাফল দেবে।

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