#include <iostream>
#include <cmath>
using namespace std;
float bezier(float x2, float y2, float x3, float y3, float t)
{
if(t > 1)t = 1;
else if (t < 0)t = 0;
float x1, y1 = 0;
float x4, y4 = 1;
std::cout << "X: " <<(pow((1-t), (1 / 3.0))*x1) + (pow((1-t), (1 / 2.0))*x2*(3*t))+ ((3*pow((t), (1 / 2.0)))*(1-t)*x3)+(pow((t), (1 / 3.0))*x4) << std::endl;
std::cout << "Y: " <<(pow((1-t), (1 / 3.0))*y1) + (pow((1-t), (1 / 2.0))*y2*(3*t))+ ((3*pow((t), (1 / 2.0)))*(1-t)*y3)+(pow((t), (1 / 3.0))*y4) << std::endl;
std::cout << "x: " << (pow( (1-t),( 1 / 3.0 ) )*x1)+(3*(pow( (1-t),( 1 / 2.0 ) ))*t*x2)+(3*(t-1)*(pow( t,( 1 / 2.0 ) ))*x3)+((pow( t,( 1 / 3.0 ) ))*x4) << std::endl;
std::cout << "y: " <<(pow( (1-t),( 1 / 3.0 ) )*y1)+(3*(pow( (1-t),( 1 / 2.0 ) ))*t*y2)+(3*(t-1)*(pow( t,( 1 / 2.0 ) ))*y3)+((pow( t,( 1 / 3.0 ) ))*y4) << std::endl;
std::cout << "t: " << t << std::endl;
}
int main() {
for(float t = 0; t <= 1.1; t+=0.1)
bezier(0, 0, 1, 1, t);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmZsb2F0IGJlemllcihmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0IHgzLCBmbG9hdCB5MywgZmxvYXQgdCkKewoJaWYodCA+IDEpdCA9IDE7CgllbHNlIGlmICh0IDwgMCl0ID0gMDsKCWZsb2F0IHgxLCB5MSA9IDA7IAoJZmxvYXQgeDQsIHk0ID0gMTsKCXN0ZDo6Y291dCA8PCAiWDogIiA8PChwb3coKDEtdCksICgxIC8gMy4wKSkqeDEpICsgKHBvdygoMS10KSwgKDEgLyAyLjApKSp4MiooMyp0KSkrICgoMypwb3coKHQpLCAoMSAvIDIuMCkpKSooMS10KSp4MykrKHBvdygodCksICgxIC8gMy4wKSkqeDQpIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Y291dCA8PCAiWTogIiA8PChwb3coKDEtdCksICgxIC8gMy4wKSkqeTEpICsgKHBvdygoMS10KSwgKDEgLyAyLjApKSp5MiooMyp0KSkrICgoMypwb3coKHQpLCAoMSAvIDIuMCkpKSooMS10KSp5MykrKHBvdygodCksICgxIC8gMy4wKSkqeTQpIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Y291dCA8PCAieDogIiA8PCAocG93KCAoMS10KSwoIDEgLyAzLjAgKSApKngxKSsoMyoocG93KCAoMS10KSwoIDEgLyAyLjAgKSApKSp0KngyKSsoMyoodC0xKSoocG93KCB0LCggMSAvIDIuMCApICkpKngzKSsoKHBvdyggdCwoIDEgLyAzLjAgKSApKSp4NCkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8ICJ5OiAiIDw8KHBvdyggKDEtdCksKCAxIC8gMy4wICkgKSp5MSkrKDMqKHBvdyggKDEtdCksKCAxIC8gMi4wICkgKSkqdCp5MikrKDMqKHQtMSkqKHBvdyggdCwoIDEgLyAyLjAgKSApKSp5MykrKChwb3coIHQsKCAxIC8gMy4wICkgKSkqeTQpIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Y291dCA8PCAidDogIiA8PCB0IDw8IHN0ZDo6ZW5kbDsKfQppbnQgbWFpbigpIHsKCWZvcihmbG9hdCB0ID0gMDsgdCA8PSAxLjE7IHQrPTAuMSkKCWJlemllcigwLCAwLCAxLCAxLCB0KTsKCXJldHVybiAwOwp9