গণিতে বেজিয়ে বক্ররেখা (ইংরেজি: Bézier curve) এক ধরনের পরামিতিক বক্ররেখা। কম্পিউটার গ্রাফিক্সে গুরুত্বপূর্ণ এই বক্ররেখাটি বহুল ব্যবহৃত হয়। বেজিয়ে বক্ররেখাকে উচ্চ মাত্রায় সাধারণীকরণ করে বেজিয়ে তল পাওয়া যায়। এর মধ্যে বেজিয়ে ত্রিভুজ একটি বিশেষ ধরনের তল।
১৯৬২ সালে ফরাসি প্রকৌশলী পিয়ের বেজিয়ে এই বক্ররেখার ধারণা জনপ্রিয় করেন। তিনি গাড়ির কাঠামো নকশা করার জন্য এগুলো ব্যবহার করেছিলেন। তবে এই রেখাগুলো প্রথম উদ্ভাবন করেন ১৯৫৯ সালে পল দ্য কাস্তেলিও, তার বিখ্যাত দ্য কাস্তেলিওর অ্যালগোরিদম ব্যবহার করে। এই অ্যালগোরিদমটি বেজিয়ে বক্ররেখার বিভিন্ন মান নির্ণয়ের জন্য একটি সাংখ্যিকভাবে স্থিতিশীল পদ্ধতি।
যদি দুটি বিন্দু P0 ও P1 দেয়া থাকে, তাহলে রৈখিক বেজিয়ে বক্ররেখা হচ্ছে দুইবিন্দুগামী একটি সরল রেখা। এর সমীকরণ নিম্নরূপঃ
এবং এটি রৈখিক ইন্টারপোলেশন এর সমতুল্য।
একটি দ্বিমাত্রিক বেজিয়ে বক্ররেখার সমীকরণ বের করতে চাইলে তিনটি বিন্দুর দেয়া থাকতে হবে। যদি তিনটি বিন্দু P0, P1, ও P2 দেয়া থাকে তবে দ্বিমাত্রিক বেজিয়ে বক্ররেখা B(t) ফাংশনের মাধ্যমে প্রকাশ করা যায় এভাবেঃ
ট্রুটাইপ ফন্ট কয়েকটি দ্বিমাত্রিক বেজিয়ে বক্ররেখার সমন্বয়ে গঠিত বেজিয়ে স্প্লাইন দ্বারা গঠিত।
ত্রিমাত্রিক তলে চারটি বিন্দু P0, P1, P2 ও P3 দিয়ে ত্রিমাত্রিক/ঘনক বেজিয়ে বক্ররেখা সংজ্ঞায়িত করা যায়।
বক্ররেখাটির সূচনা হয় P0 বিন্দুতে এবং এটি P1 বিন্দুর দিকে যেয়ে P3 বিন্দুতে মিলিত হয়। শেষবিন্দুতে রেখাটি P2 বিন্দুর দিক থেকে আসে। সাধারণত রেখাটি P1 অথবা P2 বিন্দু দিয়ে যায় না। এই দুটি বিন্দু দেয়া থাকে বেজিয়ে বক্ররেখার আকার দেয়ার জন্য যাতে বেজিয়ে বক্ররেখার দিক নিয়ন্ত্রণ করা যায়। P0 থেকে P1 বরাবর দূরত্ব নির্ধারণ করে রেখাটি P3 বিন্দুতে মিলিত হওয়ার আগে P2 বিন্দুর দিকে কতটুকু যাবে।
বক্ররেখার পরামিতিক সমীকরণ হচ্ছে:
আধুনিক চিত্র অঙ্কনের প্রোগ্রাম যেমন পোস্টস্ক্রিপ্ট, অ্যাসিম্পটোট ও মেটাফন্ট বিভিন্ন রেখা আঁকার জন্য ত্রিমাত্রিক বেজিয়ে বক্ররেখা ব্যবহার করে।
যে কোন মাত্রা সংবলিত বেজিয়ে বক্ররেখা নিচের উপায়ে সাধারণীকরণ করা যাবে। ধরি, বিন্দু দেয়া আছে P0, P1,..., Pn, তাহলে বেজিয়ে বক্ররেখা হচ্ছেঃ
উদাহরণ স্বরূপ, এর জন্য:
এই সূত্রকে পৌনঃপুনিক/পুনরাবৃত্তি আকারে লেখা যায়: ধরি বেজিয়ে বক্ররেখা নির্দেশ করে যা P0, P1,..., Pn বিন্দুগুলোর সমন্বয়ে গঠিত। তাহলে
অন্য কথায়, ডিগ্রীর বেজিয়ে বক্ররেখা দুটি ডিগ্রির বেজিয়ে বক্ররেখার রৈখিক ইন্টারপোলেশন।
পরামিতিক বক্ররেখার সাথে সংশ্লিষ্ট কিছু সংজ্ঞা দেয়া হল। আমরা জানি
যেখানে
রাশিমালা n ডিগ্রির বার্নস্টেইন পলিনোমিয়াল হিসেবে পরিচিত। এখানে t0 = 1 and (1 - t)0 = 1।
Pi বিন্দুগুলোকে বলা হয় বেজিয়ে বক্ররেখার নিয়ন্ত্রক বিন্দু। P0 থেকে শুরু এবং Pn এ শেষ হওয়া বেজিয়ে বিন্দুগুলো নিয়ে গঠিত বহুভুজকে বেজিয়ে বহুভুজ (নিয়ন্ত্রক বহুভুজ) বলা হয়। বেজিয়ে বহুভুজের উত্তল অংশ বেজিয়ে বক্ররেখাকে ধারণ করে।
রৈখিক বেজিয়ে বক্ররেখার অ্যানিমেশন, t এর মান [0,1] |
বেজিয়ে বক্ররেখার সমীকরণে t কে চিন্তা করা যেতে পারে P0 থেকে P1 বিন্দু পর্যন্ত B(t) এর দূরত্ব হিসেবে। উদাহরণস্বরুপ যখন t=0.25, B(t) তখন P0 থেকে P1 এক-চতুর্থাংশ দূরত্বে অবস্থিত। t 0 থেকে 1 পর্যন্ত বাড়লে, B(t) P0 থেকে P1 পর্যন্ত একটি সরলরেখা নির্দেশ করে।
দ্বিমাত্রিক বেজিয়ে বক্ররেখার সমীকরণের জন্য দুটি মাধ্যমিক বিন্দু Q0 ও Q1 এর সঞ্চারপথ বের করতে হবে যেখানে t এর মান 0 থেকে 1 এর মধ্যে পরিবর্তিত হয়:
দ্বিমাত্রিক বেজিয়ে বক্ররেখা গঠন | দ্বিমাত্রিক বেজিয়ে বক্ররেখার অ্যানিমেশন, t হচ্ছে [0,1] |
উচ্চ মাত্রার বক্ররেখা গঠনের জন্য আরো বেশি মাধ্যমিক বিন্দু লাগবে। ঘনক বক্ররেখার জন্য তিনটি মাধ্যমিক বিন্দু Q0, Q1 ও Q2 নেয়া যায়, যা তিনটি রৈখিক বেজিয়ে বক্ররেখা নির্দেশ করে এবং দুটি মাধ্যমিক বিন্দু R0 ও R1 নেয়া যায় যেগুলো দুটি দ্বিমাত্রিক বেজিয়ে বক্ররেখা নির্দেশ করে:
ঘনক বেজিয়ে বক্ররেখা গঠন | ঘনক বেজিয়ে বক্ররেখার অ্যানিমেশন, t হচ্ছে [0,1] |
চার-মাত্রার বক্ররেখার জন্য চারটি মাধ্যমিক বিন্দু Q0, Q1, Q2 ও Q3 নিয়ে চারটি রৈখিক বেজিয়ে বক্ররেখা, R0, R1 ও R2 বিন্দু নিয়ে তিনটি দ্বিমাত্রিক বেজিয়ে বক্ররেখা ও S0 ও S1 নিয়ে দুটি ঘনক বেজিয়ে বক্ররেখা লাগবে:
চার-মাত্রার বেজিয়ে বক্ররেখা গঠন | চার-মাত্রার বেজিয়ে বক্ররেখার অ্যানিমেশন, t হচ্ছে [0,1] |
অনেকসময় বেজিয়ে বক্ররেখাকে বহুপদী আকারে প্রকাশ করা বার্নষ্টাইন বহুপদীর তুলনায় সহজ হয় এবং অপেক্ষাকৃত সরল আকারে দেখানো যায়। দ্বিপদী উপপাদ্য ব্যবহার করে বেজিয়ে রাশিমালাকে সরলীকরন করলে পাওয়া যাবে:
যেখানে
যদি এর অনেক মান বের করার আগেই এর মান বের করা সম্ভব হয় তাহলে এই সমীকরণটি বাস্তব ব্যবহারের জন্য বেশি উপযোগী। তবে উচ্চ মাত্রার সমীকরণের জন্য দ্য ক্যাস্তেলিও অ্যালগোরিদম বেশি উপযোগী। উল্লেখ্য এখানে কোন সংখ্যার গুণফল 1 হবে না।