Исходный код FuncCraft 4.1

float y;
float x = 0;
float k=0.1;
int c1 = 19;
float xCur;
float yCur;
float zoom = -1;
boolean flag = true;
float cura;
float curb;
int crab;
float a = 0.0;
float inc = TWO_PI/25.0;
float k1 = 2;
float k2 = 1;

void setup() {
clear();
size(700, 700);
background(0, 30, 0);
x=0;
cura=0;
curb=0;
crab=0;
xCur=0;
yCur=0;
xCur=x;
yCur=y;
fill(255);
stroke(0, 255, 0);
line(0, 350, 700, 350);
line(350, 0, 350, 700);
frameRate(30); //скорость прорисовки к/сек
text("FuncCraft 4.1", 0 ,10);
text("Белая линия - основная линия графика", 0 ,20);
text("Красными и зелеными точками указаны пики дополнительных кривых построенных по смещению", 0 ,30);
}
void draw() {
k1=10; //коэфициент масштабирования по горизонтали
k2=0.1; //коэфициент масштабирования по вертикали
  grid();
sinus();
if(x>=(700/k1)+10) {
clear();
c1=19;
setup();
}
}
void sinus() {
int mode = 4; //Выбор демонстрационной ячейки
if(x!=(700/k1)+10) {
x=x+k; //задающий счетчик НЕ ТРОГАТЬ! При нужде менять значение K!
if(mode == 1) {
y=(x*x)/5;
}
if(mode == 2) {
  y=x-tan(x);
}
if(mode == 3) {
y=x-cos(x);
}
if(mode == 4) {
y=tan(x)/cos(x);
}
if(mode == 5) { 
y=sin(x);
k1=150; //коэфициент масштабирования по горизонтали
k2=20; //коэфициент масштабирования по вертикали
}
if(mode == 0) { //настраиваемая ячейка
y=sin(x);
k1=150; //коэфициент масштабирования по горизонтали
k2=20; //коэфициент масштабирования по вертикали
}

//КОД НЕ РЕДАКТИРОВАТЬ!
stroke(255, 100, 100, 255);
point((x-10)*k1,y*k2+350);
stroke(0, 255, 0);
point(x*k1,y*k2+350);//10/150-sinus,  1-5 - x-tan(x)
stroke(255, 255, 255, 255);
line((cura-5)*k1, -curb*k2+350, (x-5)*k1, -y*k2+350);
cura=x;
curb=y; 
  }
}
void grid() { //работа с сеткой
  while(c1< 720) {
 stroke(255, 40);
 line(0, c1, 700, c1); 
 line(c1, 0, c1, 700);
 c1=c1+30;
  }
}

Компилятор "processing"

 

iplogger.ru - IP Logging Service
z97b1uMEM6