how to? help me
in
Programming Questions
•
2 years ago
hi all,
i'm a new member of the forum, i'm italian, and so excuse me for my bad english.
i've got a problem with processing,
i've got this code:
import processing.pdf.*;
PFont font;
PShape G;
int boids = 400; // numero di elementi
int canvasX = 640; // dimensione canvas direzione X
int canvasY = 640; // dimensione canvas direzione Y
float inc = 0.005; // incremento del movimento a ogni ciclo
float[] ptsX = new float[boids]; // dichiara + crea maschera X
float[] ptsY = new float[boids]; // dichiara + crea maschera Y
float[] posX = new float[boids]; // dichiara + crea maschera X
float[] posY = new float[boids]; // dichiara + crea maschera Y
void setup() {
size(480, 600); // dimensione canvas
smooth();
beginRecord(PDF, "visual.pdf");
ellipseMode(CENTER);
G = loadShape ("G.svg");
for (int i = 0; i < boids; i++) {
ptsX[i] = random(0, canvasX); // Scrivi punti iniziali alla maschera X
ptsY[i] = random(0, canvasY); // Scrivi punti iniziali alla maschera Y
posX[i] = ptsX[i]; // Scrivi posizioni successive alla maschera X
posY[i] = ptsY[i]; // Scrivi posizioni successive alla maschera Y
}
}
void draw(){
background(255);
shape (G, 0, 0);
fill(165,175,205);
stroke(0,0,0,60);
strokeWeight(0.1);
// Aggiorna le posizioni
for (int i = 0; i < boids; i++) {
posX[i] = noise(ptsX[i]) * 500; // Aggiorna la posizione X
posY[i] = noise(ptsY[i]) * 480; // Aggiorna la posizione Y
ptsX[i] = ptsX[i] + inc;
ptsY[i] = ptsY[i] + inc;
}
// Disegna la linea di connessione
for (int i = 0; i < boids-1; i++) {
for (int j = i; j < boids; j++) {
if (dist(posX[j], posY[j], posX[i], posY[i]) < 50) {
line(posX[j], posY[j], posX[i], posY[i]);
}
}
}
// Disegna il punto (Disegnalo dopo in modo da non essere mascherato dalla linea)
for (int i = 0; i < boids; i++) {
ellipse(posX[i], posY[i], 4, 4); // inserisci punto
noStroke();
}
endRecord();
}
it generate a series of line and circle that are connected, and there is also e shape "G".
i wnat that this line ad cicle move inside the shape G, and the shape G must be trasparent.
how i can do it? i need your help
thank you all.
mattia
1
