xxxxxxxxxx
57
var boolDoRefresh = true;
var numLines = 12;
var lineLength = 150;
var lines = [];
var radius = 10;
function setup() {
createCanvas(640, 480);
for (var i = 0; i < numLines; i++){
lines[i] = [];
}
}
function draw() {
if (boolDoRefresh){
background(255,250,240);
for (var i = 0; i < numLines; i++){
var centerX = random(width);
var centerY = random(height);
var angle = random(TWO_PI);
var x1 = centerX - lineLength*cos(angle);
var y1 = centerY - lineLength*sin(angle);
var x2 = centerX + lineLength*cos(angle);
var y2 = centerY + lineLength*sin(angle);
line(x1,y1,x2,y2);
lines[i][0] = x1;
lines[i][1] = y1;
lines[i][2] = x2;
lines[i][3] = y2;
}
for (var a = 0; a < numLines-1; a++){
for (var b = a+1; b < numLines; b++){
x1 = lines[a][0];
y1 = lines[a][1];
x2 = lines[a][2];
y2 = lines[a][3];
x3 = lines[b][0];
y3 = lines[b][1];
x4 = lines[b][2];
y4 = lines[b][3];
ua = ((x4-x3)*(y1-y3)-(y4-y3)*(x1-x3))/((y4-y3)*(x2-x1)-(x4-x3)*(y2-y1));
ub = ((x2-x1)*(y1-y3)-(y2-y1)*(x1-x3))/((y4-y3)*(x2-x1)-(x4-x3)*(y2-y1))
if (ub >= 0 && ub <= 1 && ua >= 0 && ua <= 1){
interX = x1 + ua*(x2-x1);
interY = y1 + ua*(y2-y1);
fill(255,0,0,100);
circle(interX,interY,radius*2,radius*2);
}
}
}
boolDoRefresh = false;
}
}
function mousePressed(){
boolDoRefresh = true;
}