Code: Select all
//Узнаем размер рабочей области экрана
x0=get_xsize(get_screeen())/-2
y0=get_ysize(get_screeen())/-2
//Задаём координаты 4х опорных точек
dtx1=x0 dty1=-y0
dtx2=-x0 dty2=0
dtx3=x0 dty3=0
dtx4=-x0 dty4=y0
//В цикле от 0 до 1 с шагом 0.00001 отстраиваем точки кривой по её уравнениям
t=0 while(t<1) {
//Собственно уравнения кривой.
x=(pow((1-t),3)*dtx1)+(3*pow((1-t),2)*t*dtx2)+(3*(1-t)*pow(t,2)*dtx3)+(pow(t,3)*dtx4)
y=(pow((1-t),3)*dty1)+(3*pow((1-t),2)*t*dty2)+(3*(1-t)*pow(t,2)*dty3)+(pow(t,3)*dty4)
//Рисуем точку.
dot(x,y,WHITE)
//Осуществляем приращение t
t+0.00001
}
frame()
Если нужно построить кривую состоящую из малого количества точек (например чтобы выиграть в производительности), можно заменить рисование точки на рисование линии между текущей и предыдущей точкой.
К сожалению, я не нашел как описать кривую с большим количеством опорных точек, но есть примеры использующие 3 опорных точки (2 смысла использовать нет, там получиться прямая).
Вместо использования большого количества опорных точек, предлагается разделить кривую на фрагменты, где точка конца одного фрагмента будет совпадать по координатам с началом следующего.