[অস্বীকৃতি: আমি মনে করি যে নিম্নলিখিতগুলি কাজ করা উচিত তবে এটি নিজে কোড করে নি]
হ্যাঁ / না উত্তর দেওয়ার একটি "তুচ্ছ" পদ্ধতি সম্পর্কে আমি ভাবতে পারি নি তবে নিম্নলিখিতটির প্রশ্নের ব্যবহারিক সমাধানের যুক্তিসঙ্গত পন্থা হতে পারে।
আসুন ধরে নিই যে আমাদের বক্ররেখাগুলি যথাক্রমে কন্ট্রোল পয়েন্ট { A0, A1..An } এবং { B0, .. বিএম with সহ A (গুলি) এবং বি (টি) ।
এটি আমার কাছে মনে হয়, 2D বেজিয়ারের একটি জুটি দেওয়া হয়েছে যার জন্য আমরা নির্ধারণ করতে চাই বা ছেদ করি না তা বিবেচনা করার জন্য ছয়টি মামলা রয়েছে:
কেস যেখানে আমরা "তুচ্ছভাবে" নির্ধারণ করতে পারি সেগুলি ছেদ করে না ।
যদি তারা সীমাবদ্ধ সংখ্যার বার ছেদ করে এবং আমরা "সহজেই" নির্ধারণ করতে পারি যে তারা অবশ্যই কমপক্ষে একবার ছেদ করে (তবে আমরা আসলে তাদের যত্ন নিতে পারি না যে এই ছেদগুলি কোথায় ঘটে)
বেজিয়ারগুলির একটি হ'ল অবক্ষয়, অর্থাত্ একটি বিন্দু (যা যদি সমস্ত নিয়ন্ত্রণ পয়েন্ট অভিন্ন হয় তবে)। আমরা ধরে নিতে পারি যে আমরা ইতিমধ্যে কেসটি পরিচালনা করেছি যেখানে উভয়ই পয়েন্ট।
এক বা একাধিক কার্ভ বন্ধ রয়েছে, যেমন। A0 == একটি। জীবনকে আরও সহজ করার জন্য, আমরা এই জাতীয় বক্ররেখাকে ভাগ করব এবং আবার শুরু করব।
মোড়ের অসীম সংখ্যক পয়েন্ট রয়েছে কারণ প্রতিটি "প্যারেন্ট" বেজিয়ারের উপসেট এবং সেগুলি ওভারল্যাপ করে।
আমরা উপরের মামলাগুলি সম্পর্কে নিশ্চিত নই এবং আরও তদন্তের প্রয়োজন
এই মুহুর্তের জন্য আমরা 3 এবং 4 এড়িয়ে যাব তবে পরে তাদের কাছে ফিরে আসব।
মামলা 1
আপনি আপনার প্রশ্নে ইঙ্গিত হিসাবে, যদি ক এবং বি এর নিয়ন্ত্রণ পয়েন্টগুলির সম্পর্কিত বাউন্ডিং বাক্সগুলি ছেদ না করে তবে বাঁকগুলি ছেদ করতে পারে না। স্পষ্টতই এটি একটি দ্রুত প্রত্যাখাত পরীক্ষা তবে এটি অত্যধিক রক্ষণশীল। আপনি সম্ভবত জানেন যে, বেজিয়ার বক্ররেখা দ্বারা, এর নিয়ন্ত্রণ পয়েন্টগুলির উত্তল হালটি বাঁকায় আবদ্ধ একটি (শক্ত) গঠন করে। আমরা এইভাবে পৃথক অক্ষ প্রযুক্তিটি ব্যবহার করতে পারি এটি সিদ্ধান্ত নেওয়ার জন্য যে এ এবং বি এর হালগুলি ছেদ না করে। (যেমন উইকিপিডিয়ায় দেখানো হয়েছে :)
মামলা 2
যদি কেস 1 পরীক্ষাটি ব্যর্থ হয় তবে আপনি কোনও ছেদকের "তুচ্ছ" অস্তিত্বের জন্য যাচাই করতে পারেন। এখন এটি করার আরও ভাল উপায় আছে তবে নিম্নলিখিতটি তুলনামূলকভাবে সস্তা আমার কাছে এসেছে:
শুধু বক্ররেখা বিবেচনা করুন:
আমরা প্রতিনিয়ত বক্ররেখা শুরু জানি এ বন্ধ এবং উত্তল জাহাজের কাঠাম নীচে থাকবে। সরলতার জন্য আসুন আমরা লাইন বিভাগের দিক এবং উভয় পাশের গণনা করতে পারি (অর্থাত্ control উল্লম্ব বিরুদ্ধে অবশিষ্ট নিয়ন্ত্রণ পয়েন্টগুলির বিন্দু পণ্য গ্রহণ করি )।A0AnA0An¯¯¯¯¯¯¯¯¯¯¯¯A0An¯¯¯¯¯¯¯¯¯¯¯¯
যদি আমরা বাঁক বি দিয়ে একই কাজ করি তবে আমরা নিম্নলিখিত (সম্ভাব্য) কেসটি পাই:
আমরা যদি এটি এবং বি বাইরে বিপরীত সীমা আছে এবং যে এবং A -এর সীমার outsides হয়, তারপর, বজ়িের্শ এর ধারাবাহিকতা দ্বারা, সেখানে অন্তত একটি ছেদ হতে হবে।A0AnB0Bm
মামলা 6
যদি আমরা উপরের কোনওটি তাত্ক্ষণিকর প্রদর্শন করতে না পারি, তবে বেজিয়ারদের প্রত্যেককে দুটি "অর্ধে", অর্থাৎ বিভক্ত করুন । এটি তুলনামূলকভাবে সোজাসাপ্টা (পাঠকের কাছে অনুশীলন হিসাবে ছেড়ে দেওয়া) তবে চতুর্ভুজীয় বেজিয়ার্সের জন্য এটি বিশেষ ক্ষুদ্র :A1,A2,B1,B2
চারটি সংমিশ্রণগুলি পুনরাবৃত্তভাবে তুলনা করুন: । স্পষ্টত যদি সমস্ত পাস কেস 1 হয় তবে কোনও ছেদ নেই। যদি কোনও 1 ব্যর্থ হয়, তবে সেই হ্রাসিত উপসেটটি দিয়ে বাকি পরীক্ষা চালিয়ে যান।(A1,B1),(A2,B1)...(A2,B2)
মামলা 3 এবং 5
এখানেই এটি খানিকটা ক্লান্তিকর হয়ে ওঠে।
যদি "কেস 3" "কেস 1" পরীক্ষায় উত্তীর্ণ হয়, এটি আমার কাছে মনে হয় যে আপনাকে একটি সত্যিকারের ছেদ জন্য সমাধান করা দরকার। প্রদত্ত যে বেজিয়ার, এ (গুলি) এর এন কন্ট্রোল পয়েন্টগুলি মানচিত্রে একটি সহজ প্রক্রিয়া রয়েছে, এটি বেজারের, এ '(গুলি) এর এন -1 পয়েন্টগুলিতে ম্যাপ করার জন্য এর প্রথম 1 টি ডেরাইভেটিভের প্রতিনিধিত্ব করে (প্রদত্ত যত্ন নেওয়া হয়) অপেক্ষাকৃত বিরল, তথাকথিত "অধঃপতিত" পরিস্থিতি যেখানে ১ ম ডেরাইভেটিভটি শূন্যে পরিণত হয়), তারপরে নিউটন পুনরাবৃত্তি (এক মাত্রায়) সম্ভাব্য সমাধানগুলি খুঁজে পেতে ব্যবহার করা যেতে পারে।
এও নোট করুন যেহেতু ক 'র কন্ট্রোল পয়েন্টগুলি ডেরাইভেটিভ মানগুলির উপর আবদ্ধ, তাই কিছু ক্ষেত্রে তাড়াতাড়ি নির্মূল করার সম্ভাবনা রয়েছে।
কেস 5 অপেক্ষাকৃত অসম্ভব বলে মনে হচ্ছে, সুতরাং কেবলমাত্র কয়েকটি সংবর্তনের পরে যদি কোনও চূড়ান্ত প্রমাণ না পাওয়া যায় তবে কার্ভ বি এর বিপরীতে এ এর প্রতিটি শেষ বিন্দু চেষ্টা করতে পারে। এটি কেবল ছেদ করার প্রমাণ দেবে - না ছেদ করার প্রমাণ নয়।