#include <stdio.h>
#include<stdlib.h>
#include<math.h>
void bezierCurve(int x[] , int y[])
{
double xu = 0.0 , yu = 0.0 , u = 0.0 ;
int i = 0 ;
for(u = 0.0 ; u <= 1.0 ; u += 0.05)
{
xu
= pow(1-u
,3)*x
[0]+3*u
*pow(1-u
,2)*x
[1]+3*pow(u
,2)*(1-u
)*x
[2] yu
= pow(1-u
,3)*y
[0]+3*u
*pow(1-u
,2)*y
[1]+3*pow(u
,2)*(1-u
)*y
[2] printf("X: %i Y: %i \n" , (int)xu
, (int)yu
) ; }
}
int main(void) {
int x[] = {0,75,50,300};
int y[] = {0,2,140,100};
bezierCurve(x,y);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlPHN0ZGxpYi5oPiAKI2luY2x1ZGU8bWF0aC5oPiAKCnZvaWQgYmV6aWVyQ3VydmUoaW50IHhbXSAsIGludCB5W10pIAp7IAogICAgZG91YmxlIHh1ID0gMC4wICwgeXUgPSAwLjAgLCB1ID0gMC4wIDsgCiAgICBpbnQgaSA9IDAgOyAKICAgIGZvcih1ID0gMC4wIDsgdSA8PSAxLjAgOyB1ICs9IDAuMDUpIAogICAgeyAKICAgICAgICB4dSA9IHBvdygxLXUsMykqeFswXSszKnUqcG93KDEtdSwyKSp4WzFdKzMqcG93KHUsMikqKDEtdSkqeFsyXSAKICAgICAgICAgICAgICtwb3codSwzKSp4WzNdOyAKICAgICAgICB5dSA9IHBvdygxLXUsMykqeVswXSszKnUqcG93KDEtdSwyKSp5WzFdKzMqcG93KHUsMikqKDEtdSkqeVsyXSAKICAgICAgICAgICAgK3Bvdyh1LDMpKnlbM107IAogICAgICAgIHByaW50ZigiWDogJWkgICBZOiAlaSBcbiIgLCAoaW50KXh1ICwgKGludCl5dSkgOyAKICAgIH0gCn0gCgppbnQgbWFpbih2b2lkKSB7CglpbnQgeFtdID0gezAsNzUsNTAsMzAwfTsKCWludCB5W10gPSB7MCwyLDE0MCwxMDB9OwoJYmV6aWVyQ3VydmUoeCx5KTsKCXJldHVybiAwOwp9Cg==