Matritsa formasida kubik Bezier egri quyidagi tarzda yoziladi:
Demak MB Bezierning asosiy matritsasi deb ataladi:
Lineer egri chiziqlar
Bezier egri chiziqli holatini tavsiflovchi funktsiya t parametrining aniqligi B ( t ) ning P 0 dan P1gacha bo'lgan masofani aniqlaydi. Masalan, t = 0.25 uchun B ( t ) funktsiyasi qiymati R 0 va P 1nuqtalari orasidagi masofaning to'rtdan biriga to'g'ri keladi. Parametr t 0 dan 1gacha farq qiladi va B ( t ) P 0 va P 1 nuqtalari orasidagi tekis chiziqli segmentni tasvirlaydi.
Quadratik egri chiziqlar
Kvadratik Bezier egri chizig'ini qurish uchun ikkita oraliq nuqtadan Q 0 va Q 1 ni parametr t 0 dan1gacha farq qilishi shart.
Qoida 0- dan P- ga P-ga o'zgaradi va lineer Bezier egri ta'riflaydi.
Qoida 1- dan P- dan P-ga o'zgaradi va shuningdek, Bezierning chiziqli egri tasvirlangan.
B nuqtasi Q 0dan Q 1gacha o'zgaradi va Bézier kvadratining egri chizilgan.
Yuqori darajali egri chiziqlar [ kodni tahrirlash ]
Yuqori darajadagi egri chizmalarini yaratish uchun, ko'proq qidiruv nuqtalar talab qilinadi. Kubik egri chiziqli chiziqlarni ta'riflovchi Q 0 , Q 1 va Q 2 oraliq nuqtalari, shuningdek, kvadratik egri chiziqlarni tasvirlaydigan R 0 va R 1 nuqtalari: oddiyroq tenglama
To'rtinchi darajali egri chiziqlar uchun Q0, Q1, Q2 va Q 3 nuqtalari kvadrat chiziqlarni tavsiflovchi R 0 , R 1 va R 2 ning chiziqli chiziqlarini, shuningdek, kubik Bezier egrilarini ta'riflovchi S 0 va S 1 nuqtalarini tasvirlaydi :
Bezier egri xususiyatlari
boshlang'ich va oxirgi nuqtalar o'rtasida segmentni to'ldirishning davomiyligi;
Egri har doim nazorat nuqtalarini bir-biriga bog'laydigan chiziqlar tomonidan tashkil etilgan shakl ichida joylashganki;
agar faqat ikkita nazorat nuqtasi bo'lsa, segment to'g'ri chiziq;
qo'mondon nuqtalari bir-biriga tekis chiziqli bo'lganda to'g'ri chiziq hosil bo'ladi;
Bezier egri nosimmetrikdir, ya'ni boshlang'ich va oxirgi nuqtalar orasidagi almashish (traektoriya yo'nalishi o'zgarishi) egri shakliga ta'sir qilmaydi;
Bezier egri miqdorini o'lchash va o'zgartirish uning barqarorligini buzmaydi, chunki u matematik nuqtai nazardan “yaxshi o`zgaruvchan" emas;
nuqtalarning kamida bittasining koordinatalarini o'zgartirish butun Bezier egri shakli o'zgarishiga olib keladi;
Bezier egri har qanday qisman segmenti ham Bezier egri;
egri darajasini (buyrug'i) har doim nazorat nuqtalarining sonidan bir qadam pastroq bo'ladi. Misol uchun, uchta nazorat nuqtasida parabol ikkinchi darajali egri bo'lsa, egri shakli parabola hisoblanadi;
Bezier egri parametrik tenglamasi doirasini tasvirlash mumkin emas;
Bezierning egri chizig'ini parallel shaklda yaratish mumkin emas, ammo unchalik ahamiyatli bo'lmagan holatlardan tashqari (tekis chiziqlar va mos keladigan egri chiziqlar), garchi taxminan parallel Bezier egri tuzish algoritmlari mavjud bo'lsa-da.
public:
void Bezier2D(double[] b, int cpts, double[] p) { int npts = (b.Length) / 2; int icount, jcount; double step, t; // Egri chiziqdagi nuqtani hisoblash icount = 0; t = 0; step = (double)1.0 / (cpts - 1); for (int i1 = 0; i1 != cpts; i1++) { if ((1.0 - t) < 5e-6) t = 1.0; jcount = 0; p[icount] = 0.0; p[icount + 1] = 0.0; for (int i = 0; i != npts; i++) { double basis = Bernstein(npts - 1, i, t); p[icount] += basis * b[jcount]; p[icount + 1] += basis * b[jcount + 1]; jcount = jcount +2; } icount += 2; t += step; } }