Pages: [1]   Go Down
Author Topic: [RISOLTO] OT: Cancellare oggetto di processing  (Read 416 times)
0 Members and 1 Guest are viewing this topic.
Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti!
Pomeriggio ozioso e ho deciso di rappresentare graficamente i valori ricevuti da un sensore di distanza HC-SR04. Ma come vedete sono già le 20 e sto qui a scrivere sul forum, si vede che qualcosa non va smiley

Il metodo che ho pensato di usare è quello di disegnare, al ricevere dei dati da arduino, un rettangolo che cambi altezza.
Quando la distanza aumenta, aumenta anche la linea.. ma quando diminuisce la linea è ferma. In realtà non è ferma perchè si muove, solo che si sovrappone a quella precedente che era più lunga.

C'è un modo per eliminare la linea e disegnarne una nuova? Oppure un modo per creare un oggetto linea con un nome X, al quale poi cambierò l'altezza?


In realtà volevo imitare il progetto visto in un vecchio post di ratto93, dove fa il grafico delle distanze prese da vari angoli, a mo' di sonar, solo che non ho trovato sorgenti Processing per vedere come fa. Ma per il momento sono bloccato alla linea smiley
« Last Edit: February 25, 2012, 01:26:19 pm by sciorty » Logged

0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

devi cancellare la finestra (più probabilmente il Canvas) ogni repaint() chiamado g.clearRect(int x, int y, int width, int height) (nota che puoi cancellare solo parte dello schermo... ottimizzazione che per ora puoi evitare, prima prendici la mano)
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

devi cancellare la finestra (più probabilmente il Canvas) ogni repaint() chiamado g.clearRect(int x, int y, int width, int height) (nota che puoi cancellare solo parte dello schermo... ottimizzazione che per ora puoi evitare, prima prendici la mano)

Lesto scusami la cafoneria ma l'ho ripreso solo ora il progetto.. devo importare qualche libreria per la funzione?
Se chiamo solo la repaint() non succede nulla
Logged

0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uhmmm postami il codice che non ti seguo bene
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uhmmm postami il codice che non ti seguo bene

Il codice è essenzialmente questo:
Code:
capito


import processing.serial.*;

Serial arduino; 
int altezza;     
String val;

void setup()
{
  background(0);
  size(200, 200);

  arduino = new Serial(this, "/dev/ttyUSB4", 9600);
}

void draw()
{

  if ( arduino.available() > 0) {
    val=arduino.readStringUntil('\n');
    if(val!=null){
     altezza=int(float(val));
    }   
  }

  println(altezza);

  noFill();
  rect(100,0,10,altezza);


}


Quello che vorrei fare sarebbe cancellare il rect ogni 100 ms o meno magari (dall'arduino invio solo il valore della distanza ogni 100 ms), perchè in questo modo i rettangoli si sovrappongono.

Logged

0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

come prima istruzione del draw metti background(255); (con 255 cambiato in base al colore che vuoi)
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

come prima istruzione del draw metti background(255); (con 255 cambiato in base al colore che vuoi)

Grandissimo smiley-grin
Logged

Pages: [1]   Go Up
Jump to: