Все тот-же FuncCraft 4.1 только с красивым графическим выводом координат точки на графике. Размер окна в версии М2 увеличен с 700Х700 пикселей до 700Х900 за счет добавления блока вывода координат. Код идеально подойдет для того, чтобы повые повыделоваться перед младшеклассниками).
IDE "processing"
float y;
float x = -3000;
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;
int k3=1;
void setup() {
clear();
size(900, 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(5); //скорость прорисовки к/сек
text("FuncCraft 4.1", 0 ,10);
text("Белая линия - основная линия графика", 0 ,20);
text("Красными и зелеными точками указаны пики дополнительных кривых построенных по смещению", 0 ,30);
}
void draw() {
k1=10; //коэфициент масштабирования по горизонтали
k2=0.1; //коэфициент масштабирования по вертикали
grid();
text("X : Y", width-180,10);
sinus();
if(x>=(700/k1)+10) {
clear();
c1=19;
setup();
}
}
void sinus() {
int mode = 4; //Выбор демонстрационной ячейки
if(x!=(700/k1)+10) {
x=x+k; //задающий счетчик НЕ ТРОГАТЬ! При нужде менять значение K!
k3++; //задающий счетчик НЕ ТРОГАТЬ!
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=x*x;
k1=10; //коэфициент масштабирования по горизонтали
k2=1; //коэфициент масштабирования по вертикали
}
//КОД НЕ РЕДАКТИРОВАТЬ!
fill(0, 30, 0);
stroke(255, 255, 255, 100);
rect(width-180,(k3*10)-10, width, 20);
fill(255);
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;
text(cura+" : "+curb, width-180,k3*10);
}
if(k3*10>=height) k3=1;
}
void grid() { //работа с сеткой
while(c1< 720) {
stroke(255, 40);
line(0, c1, 700, c1);
line(c1, 0, c1, 700);
c1=c1+30;
}
}
|