xxxxxxxxxx
73
var boolDoRefresh;
var numLines = 12;
var lines = [];
function setup() {
createCanvas(640, 480);
background(235, 189, 52)
boolDoRefresh = true;
}
function draw() {
if (boolDoRefresh) {
lines = [];
background(235, 189, 52)
for (var i = 0; i < numLines; i++){
storeCoordinate(random(0, width), random(0, height), random(0,width), random(0,height), lines);
}
// to loop through coordinate values
for (var i = 0; i < lines.length; i++) {
stroke(255)
strokeWeight(1);
line(lines[i].x, lines[i].y, lines[i].x2, lines[i].y2)
// var intersected = findIntersections(lines)
//
}
boolDoRefresh = false;
var intersected = findIntersections(lines)
}
}
function findIntersections(a){
for (var i = 0; i < a.length; i++) {
for (var j = i + 1; j < a.length; j++) {
// if there are intersections
var xOne = a[i].x
var yOne = a[i].y
var xTwo = a[i].x2
var yTwo = a[i].y2
var x3 = a[j].x
var y3 = a[j].y
var x4 = a[j].x2
var y4 = a[j].y2
var ua = ((x4 - x3)*(yOne - y3) - (y4 - y3)*(xOne - x3)) / ((y4 - y3)*(xTwo - xOne) - (x4 - x3)*(yTwo - yOne));
var ub = ((xTwo - xOne)*(yOne - y3) - (yTwo - yOne)*(xOne - x3))/ ((y4 - y3)*(xTwo - xOne) - (x4 - x3)*(yTwo - yOne));
if ((ua > 0 && ua < 1) && (ub > 0 && ub < 1 )){
var intersectedX = int(xOne + ua*(xTwo-xOne));
var intersectedY = int(yOne + ua*(yTwo-yOne));
}
print(intersectedX,intersectedY)
fill(color(252, 86, 3,50));
strokeWeight(0);
ellipse(intersectedX, intersectedY, 10);
}
}
}
function mousePressed() {
boolDoRefresh = true;
}
function storeCoordinate(xVal, yVal, x2Val, y2Val, array) {
array.push({x: xVal, y: yVal, x2: x2Val, y2: y2Val});
}