математичка функција From Wikipedia, the free encyclopedia
Безјеова крива (погрешно наречена „Безиерова крива“) — параметарска крива која наоѓа честа примена во сметачката графика и сродните полиња. Воопштувањата на Безјеовите криви во повисоки димензии се нарекуваат Безјеови површини, чиј посебен случај е Безјеовиот триаголник.
Кај векторската графика, Безјеовите криви се користат за моделирање на глатки криви чиј размер може да се менува до бесконечност. „Патеките“, како што се нарекуваат во програмите за работа (манипулација) со слики[бел 1] се комбинации од сврзани Безјеови криви. Патеките не се ограничени од растеризираните слики и можат да се менуваат интуитивно. Безјеовите криви се користат и во анимацијата, како алатка за контрола на движењето.[бел 2]
Безјеовите криви наоѓаат примена и кај временските одредници, особено за анимации и во изработката на посредници. На пример, со Безјеова крива можеме да ја назначиме брзината на еден објект со текот на времето, како икона што се преместува од А до Б, наместо да преместуваме утврден број на пиксели по чекор. Кога аниматорите или уредувачите на посредници зборуваат за „физиката“ или „чувството“ во работата, тие всушност споменуваат извесна Безјеова крива што ја контролира брзината на даденото движење со текот на времето.
Безјеовите криви ги популаризирал францускиот инженер Пјер Безје во 1962, кога почнал да ги применува при обликувањето на автомобилски каросерии. Овие криви прв ги осмислил Пол де Кастелжо користејќи де Кастелжоов алгоритам, кој е бројчено стабилен метод за вреднување на Безјеови криви.
Безјеовите криви наоѓаат широка примена во сметачката графика за моделирање на глатки криви. Бидејќи кривата е целосно опфатена во испакната обвивка на нејзините контролни точки, точките можат да се прикажат графичк и да се користат за интуитивно манипулирање на кривата. Кривата може да се менува со афините трансформации како транслацијата и ротацијата со нивна примена врз соодветните контролни точки.
Најзатапени се квадратните и кубните Безјеови криви. Кривите од повисок степен се потешки за вреднување. Кога има потреба од посложени облици, се земаат Безјеови криви од ниж ред и се поврзуваат. Ова се нарекува „патека“ кај стандардите за векторска графика (како SVG) и програмите за работење со неа (како Adobe Illustrator и Inkscape). За да се обезбеди сигурна глаткост, контрочната точка во којашто се среќаваат две криви мора да лежи на линијата помеѓу две контрочни точки од секоја страна.
Најпростиот метод на претворање (растеризирање) една Безјеова крива со вчитување е нејзино вреднување во голем број на збиени точки и претворање на приближната низа од отсечки. Меѓутоа ова не гарантира дека растеризираниот извод ќе изгледа доволно гладок, бидејќи точките може да бидат премногу оддалечени една од друга. Може да се јави и обратен случај, кајшто може да има премногу точки во деловите на кривата што се речиси прави. Постои и чест адаптивен метод на рекурзивна поделба, каде се проверуваат контролните точки на кривата за да се утврди дали кривата дава приближен извод на отсечка до прецизнос со мала толеранција. Ако е незадоволителна, кривата параметарски се одделува на две отсечки, 0 ≤ t ≤ 0,5 и 0,5 ≤ t ≤ 1, и истата постапка се применува на секоја половина. Постојат и нерекурзивни методи на разликување, но треба да се обрати големо внимание при анализата на јавувањата на грешки. Постојат и аналитички методи, каде вчитана линија ја пресекуваме со сплајн и наоѓаме корени на кубни полиноми (за кубни сплајнови), па потоа работиме со повеќе вакви корени.
Кај програмите за анимација како Adobe Flash и Synfig, Безјеовите криви служат за општо исцртување, на пример на движењето. Корисникот ја исцртува саканата патека со Безјеови криви, а програмот ги создава кадрите што му требаат на објектот за да се движи долж зададената патека. Кај 3Д анимациите, Безјеови криви служат за определување на тридимензонални патеки и дводимензионални криви за интерполација на клучните кадри.
Фонтовите од семејството TrueType користат Безјеови сплајнови составени од квадратни Безјеови криви.
Современите системи за ликовно уредување како PostScript, Asymptote и Metafont користат безјеови сплајнови составени од кубни Безјеови криви за исцртување на закривени облици. Овој алгоритам наоѓа примена и кај „глатката крива“ кај табелите во Microsoft Excel.[1]
Ако ги имаме точките P0 и P1, линеарната Безјеова крива е едноставно права линија помеѓу тие две точки. Кривата е дадена со
и е истоветна со линеарната интерполација.
Квадратна Безјеова крива е патеката што ја исцртува функцијата B(t), со зададени точки P0, P1 и P2,
Заминува од P0 во правец на P1, па се P2 in the direction from P1. Со други зборови, обете тангенти на P0 и P2 минуваат низ P1. Ова непосредно може да се види во изведеното од Безјеовата крива:
Квадратната Безјеова крива е воедно и параболична отсечка.
Четирите точки P0, P1, P2 и P3 на рамнината или во тридимензионален простор дефинираат кубна Безјеова крива. Кривата почнува во P0, оди кон P1 и завршува во P3 доаѓајќи од кај P2. Обично не минува низ P1 или P2; овие точки служат само како показатели на насоката. Растојанието помеѓу P0 и P1 определува колку „колку долго“ кривата се движи во една насока P2 пред да се сврти кон P3.
Параметарскиот облик на кривата е:
За некои задавања на P1 и P2, кривата може да се пресече самата себеси, или да содржи зашилување.
Безјеовата крива од степен n може да се воопшти на следниов начин. Ако ги имаме точките P0, P1,..., Pn, Безјеовата крива е
каде е биномниот коефициент.
На пример, за n = 5:
Формулата може да се изрази рекурзивно вака: Нека означува Безјеовата крива определена од точките P0, P1, ..., Pn. Тогаш
Со други зборови, Безјеовата крива од степен n е линеарна интерполација between две Безјеови криви од степен (n − 1).
Овие параметарски криви имаат своја придружна терминологија. Имаме
каде полиномите
се нарекуваат Бернштајнови полиноми од степен n, с t0 = 1 и (1 − t)0 = 1. Биномниот коефициент, може поинаку да се запише и како
Точките Pi се нарекуваат „контролни точки“ за Безјеовата крива. Многуаголникот што се добива со поврзувањето на Безјеовите точки со линии, започнувајќи од P0 и завршувајќи во Pn, се нарекува „Безјеов многуаголник“ (или „контролен многуаголник“). Испакнатата обвивка на Безјеовиот многуаголник содржи Безјеова крива.
Анимација на една линеарна Безјеова крива, t во [0,1] |
Елементот t во функцијата за линеарна Безјеова крива изразува колку е оддалечено B(t) од P0 to P1. На пример, кога 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] |
(Погледајте и конструкција на Безјеова крива од петти ред.)
Безјеова крива од степен n може да се претвори во Безјеова крива од степен n + 1 со ист облик. Ова е корисна можност ако програмот поддржува само Безјеови криви од извесен степен. На пример, можете да нацртате квадратна Безјеова крива со Cairo, кој поддржува само кубни Безјеовиѕ криви.
За да добиеме крива од повисок степен, го применуваме равенството . Секој дел се множи со (1 − t) или t, зголемувајќи го степенот за еден. Еве пример за повишување на степенот од 2 на 3.
За произволно n, ги применуваме равенствата
воведувајќи произволно и .
Затоа новите контролни точки се [2]
Понекогаш е пожелно Безјеовата крива да се изрази како полином наместо збир од посложени Бернштајнови полиноми. Се применува биномна теорема врз дефиницијата на кривата, се врши извесен извесен прераспоред, па добиваме:
каде
Ова може да е практично ако може да се пресметка пред многу повишувања на . Меѓутоа треба да се биде претпазлив, бидејќи кривите од виш ред може да немаат бројчена стабилност (ако ова се случи, треба да се примени де Кастелжоовиот алгоритам). Забележете дека празниот производ изнесува 1.
Рационалната Безјеова крива додава прилагодливи пондерации за поточни приближни пресметки на произволни облици. Броителот е понерирана Безјеова крива од Бернштајнов облик, а именителот е пондериран збир од Бернштајнови полиноми. Рационалните Безјеови криви, меѓу другото, се користат и за точно претставување на делови од конусни пресеци.[3]
Ако имаме n + 1 контролни точки Pi, рационалната Безјеова крива може да се опише со:
or simply
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.