Ви не увійшли.
Решил применить функции связанные с действиями мышки. В коде использовал готичный шрифт.
Для работы программы скачайте шрифт и положите его в папку с проэктом.
Как пример использования вполне сгодится .... Ардуину пока не прилепил - но я думаю что
особого труда это не составит ) пост и код еще будет редактироваться ...
Управляющий слайдер ...
PFont font;
String Value="0";
void setup()
{
size(400, 200);
background(220);
noStroke();
fill(200);
rect(195,5,10,190);
font = createFont("cyrillicgoth_medium.ttf",25);
textFont(font);
fill(0);
text("0",180,195);
text("100",160,20);
}
void draw()
{
stroke(0);
smooth();
//text(Value,5,50);
}
void mouseDragged()
{
if(mouseX>195 && mouseX<205 && mouseY>5 && mouseY<190 )
{
background(220);
fill(200);
rect(195,5,10,190);
fill(0);
rect(195,mouseY,10,195-mouseY);
Value = "Present Val: "+str(int((195-mouseY)*0.5263));
textFont(font);
fill(0);
text("0",180,195);
text("100",160,20);
text(Value,5,100);
}
}
Все это конечно хорошо ... но зачем придумывать велосипед если похожие вещи уже были написаны
и включены в библиотеку. Называется controlP5. Для установки - /Sketch/Import library/Add library/
В фильтре вбиваем название controlP5 и жмем Install...
С библиотекой нужно разобраться - много интересных вещей для контроля ...
Подключаем шрифты.
Качаем прикольный шрифт (в примере файл с раширением ttf).
Ложим его в папку с проэктом.
Код для подключения шрифтов ...
PFont font;
void setup()
{
size(600,300);
background(200);
font = createFont("10467.ttf", 100);
}
void draw()
{
background(200);
textFont(font);
fill(100);
text("Hello World :-)",50,150);
}
И получаем что то следующее ...
Учитывая что объектом внимания есть все таки Processing то над кодом для Arduino пока заморачиваться не буду.
Хотя в ближайших планах написать код для устройства которое пишет данные
(показания всяких там датчиков) на флешку. И при подключении по bluetooth считываешь все что там записано.
код для Arduino(передаем синусоиду) ...
String data;
void setup()
{
Serial.begin(9600);
}
void loop()
{
for(int i=0;i<360;i++)
{
data = String(sin(3.1415*i/180));
Serial.println(data);
delay(100);
}
}
код для Processing
import processing.serial.*; // подключаем библиотеку serial
Serial port; // создаем объект с именем port
float z; // переменная для оси времени (ось X)
String data1; // переменная в которую будут считываться значения с порта
float data2; // переменная для конвертации данных
void setup(){
size(1200,600);
port = new Serial(this,"COM6",9600); // вместо COM6 вставте свой порт по которому ардуина подключена к компьютеру
setka(5,5,1195,595);
}
void draw(){
if (port.available()>0)
{
data1 = port.readString();
data2 = float(data1);
stroke(255,0,0);
point(z+5,300-data2*100);
z=z+0.5;
println(data2);
}
}
void setka(int coordX1,int coordY1,int coordX2,int coordY2) // функция рисует сетку с градацией 10 одним цветом и 20 другим
{
color LineColor1 = color(220); // цвет линии градации 10
color LineColor2 = color(200); // цвет линии градации 20
color LineColor3 = color(180); // цвет линии градации 100
fill(255);
rect(coordX1-25,coordY1-25,coordX2-coordX1+50,coordY2-coordY1+50);
for(int i = coordX1;i<=coordX2;i=i+10)
{
stroke(LineColor1); // задаем цвет для линии переменной LineColor1
line(i,coordY1,i,coordY2); // рисуем горизонтальные линии от левого верхнего угла до правого нижнего градацией в 10
}
for(int j = coordY1;j<=coordY2;j=j+10)
{
stroke(LineColor1); // задаем цвет для линии переменной LineColor1
line(coordX1,j,coordX2,j);
}
for(int i = coordX1;i<=coordX2;i=i+20)
{
stroke(LineColor2); // задаем цвет для линии переменной LineColor1
line(i,coordY1,i,coordY2); // рисуем горизонтальные линии от левого верхнего угла до правого нижнего градацией в 10
}
for(int j = coordY1;j<=coordY2;j=j+20)
{
stroke(LineColor2); // задаем цвет для линии переменной LineColor1
line(coordX1,j,coordX2,j);
}
for(int i = coordX1;i<=coordX2;i=i+100)
{
stroke(LineColor3); // задаем цвет для линии переменной LineColor1
line(i,coordY1,i,coordY2); // рисуем горизонтальные линии от левого верхнего угла до правого нижнего градацией в 10
}
for(int j = coordY1;j<=coordY2;j=j+100)
{
stroke(LineColor3); // задаем цвет для линии переменной LineColor1
line(coordX1,j,coordX2,j);
}
}
size(a,b) -рисуем окно с размерами а х b.
можно использовать переменные displayWidth и displayHeight.
И привязывать все нарисованное к этим переменным для универсальности программы.
rect(x,y,w,h,2,2,2,2) - функция рисует прямоугольник
x -x координата вершины
y -y координата вершины
w - длинна прямоугольника
h - высота прямоугольника
Двойки - это степень закругления по углам (этот параметр не обязателен)
fill(R,G,B,alpha) - заливка обекта цветом(если указать один параметр - оттенок серого)
альфа - это параметр прозрачности(я его применил для отметки зоны комфорта на графике
температуры)
noFill() -без заливки
stroke(R,G,B) - окантовка объекта цветом
noStroke() - без канта
text("Hello world",x,y) - вывод на экран текста
print() - вывод информации в консоль
arc()
mouseClicked() - функция вызывается каждый раз когда кнопка мышки была нажата и отпущена
mousePressed() - функция отслеживает все нажатия кнопки мышки
mouseMoved() - функция вызывается каждый раз когда курсор мыши был перемещен
mouseDragged() - функция вызывается каждый раз когда кнопка мыши была нажата и
курсор мыши перемещен
mouseButton - системная переменная которая принимает значения LEFT или RIGHT
и определяет какая кнопка мыши была нажата
mousePressed - системная переменная которая хранит состояние кнопок мыши.
true - если какая нибудь кнопка нажата и false если нет.
mouseX
mouseY
pmouseX
pmouseY
Что такое Processing можно посмотреть в википедии. Но вот столкнулсо с такой проблемой вся документация на английском языке.
А у меня с гуманитарными вопросами проблема(знаний английского для програмирования вдосталь а вот для перевода и изучения нюансов - нет) . Можно конечно воспользоваться переводчиком но....
Возникла такая идея понемногу описывать функции - такой себе блокнотик. Может у кого возникнут идеи или правки пишите... ведь можно и под андроид писать(APDE).
Сам компилятор можно скачать сдесь https://processing.org/download/
Все функции и прочее можно посмотреть сдесь https://processing.org/reference/