bezier curve – Programmerbay https://programmerbay.com A Tech Bay for Tech Savvy Sun, 10 Mar 2024 17:04:43 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.5 https://programmerbay.com/wp-content/uploads/2019/09/cropped-without-transparent-32x32.jpg bezier curve – Programmerbay https://programmerbay.com 32 32 C Program to draw Bezier Curve using 4 control points https://programmerbay.com/c-program-to-draw-bezier-curve-using-4-control-points/ https://programmerbay.com/c-program-to-draw-bezier-curve-using-4-control-points/#respond Sat, 24 Feb 2024 16:41:31 +0000 https://www.programmerbay.com/?p=2143 Bezier Curve is one of the Curve representation which uses control points to draw a curve. It is always determined on the number of control points that require to draw it. It follows Bernstein polynomial as the basis function.

Must Read [  What is Bezier Curve ?  ]

C Program to draw a Bezier curve

Program:

#include<graphics.h>
#include<math.h>
#include<conio.h>
#include<stdio.h>
void main()
{
int x[4],y[4],i;
double put_x,put_y,t;
int gr=DETECT,gm;
initgraph(&gr,&gm,"C:\\TURBOC3\\BGI");
printf("\n****** Bezier Curve ***********");
printf("\n Please enter x and y coordinates ");
for(i=0;i<4;i++)                 
{
scanf("%d%d",&x[i],&y[i]);
putpixel(x[i],y[i],3);                // Control Points
}

for(t=0.0;t<=1.0;t=t+0.001)             // t always lies between 0 and 1
{
put_x = pow(1-t,3)*x[0] + 3*t*pow(1-t,2)*x[1] + 3*t*t*(1-t)*x[2] + pow(t,3)*x[3]; // Formula to draw curve
put_y =  pow(1-t,3)*y[0] + 3*t*pow(1-t,2)*y[1] + 3*t*t*(1-t)*y[2] + pow(t,3)*y[3];
putpixel(put_x,put_y, WHITE);            // putting pixel 
}
getch();
closegraph();
}

 

Output:

bezier curve

 

]]>
https://programmerbay.com/c-program-to-draw-bezier-curve-using-4-control-points/feed/ 0
Find the equation of the Bezier curve which passes through (0,0) and (-4,2) and controlled through (14,10) and (4,0) https://programmerbay.com/find-the-equation-of-the-bezier-curve-which-passes-through-00-and-42-and-controlled-through-1410-and-40/ https://programmerbay.com/find-the-equation-of-the-bezier-curve-which-passes-through-00-and-42-and-controlled-through-1410-and-40/#respond Fri, 23 Nov 2018 16:30:45 +0000 https://www.programmerbay.com/?p=2134

Solution:

B(t) = ∑ki=0   PBk,n(t)         where, 0<=t<=1

It is given that curve passes (0,0) and (-4,2), means starting point of the curve is P0 = (0,0) and P3 = (-4,2)

Whereas the curve is controlled by P1 (14,10) and P2 (4,0)

Number of control points,

P0=(0,0) ,  P1=(14,10) , P2=(4,0)  , P3=(-4,2)

 

Degree of equation n =Control_point -1 = 4 -1 = 3

B(t) = P0B0,3(t)+ P1B1,3(t) + P2B2,3(t)+ P3B3,3(t)

Where,  Bk,n(t)=  nCk    uk (1-t)n-k

 

B0,3(t)3C0    t0 (1-t)3-0

=   1(1-t) 3

               =   1(1-t) 3

             (1-t)3

B1,3(t)3C1    u1 (1-t)3-1

=   t(1-t) 2

               =   t(1-t) 2

             =  3t (1-t)2

B2,3(t)3C2    t2 (1-t)3-2

=   t2(1-t) 1

               =   t2(1-t) 1

             3t2 (1-t)1

 

B3,3(t)=  3C3   u3 (1-t)3-3

=   t3(1-t) 0

               =   t3(1-t) 0

             t3

 

B(t)=      P0 (1-t)3 + P1 3t (1-t)2+ P2 3t2 (1-t)1+ P3 t3

Now, Using this equation lets calculate equation for x control point

P0=(0,0) ,  P1=(14,10) , P2=(4,0)  , P3=(-4,2)

= 0(1-t)3 + (14)  3t (1-t)2+ (4) 3t2 (1-t)+ (-4) t3

= 42t(t2+1-2t)+ 12t2(1-t)-4t3

= 42t3+42t-84t2+12t2-12t3-4t3

=26t3-72t2+42t

Using this equation lets calculate equation for y control points

= 0(1-t)3 + (10)  3t (1-t)2+ (0) 3t2 (1-t)+ (2) t3

=30t (1+t2-2t)+2t3

=30t+30t3-60t2+2t3

= 32t3 -60t2+30t

So, The answer is P(t) =[ x(t) y(t)] =[ (26t3-72t2+42t) (32t3 -60t2+30t)]

 

 

 

 

]]>
https://programmerbay.com/find-the-equation-of-the-bezier-curve-which-passes-through-00-and-42-and-controlled-through-1410-and-40/feed/ 0