xxxxxxxxxx
153
let RoudAboutRadius = 80;
let RoudAboutGap = 120;
let angleGap=20;
let i=0;
function setup() {
createCanvas(windowWidth, windowHeight);
}
function draw()
{
let centreX = windowWidth/2;
let centreY = windowHeight/2;
angleMode(DEGREES)
frameRate(10)
background(200);
fill(0)
circle(centreX,centreY, RoudAboutRadius );
noFill();
circle(centreX,centreY , RoudAboutRadius + RoudAboutGap );
let ArcDiameter = RoudAboutRadius + 2*RoudAboutGap;
arc(centreX,centreY , ArcDiameter, ArcDiameter , 0+angleGap, 90-angleGap);
let road1X = centreX + ArcDiameter/2*cos(90-angleGap)
let road1Y = centreY + ArcDiameter/2*sin(90-angleGap);
let road1Xh = centreX + ArcDiameter/2*cos(0+angleGap)
let road1Yh = centreY + ArcDiameter/2*sin(0+angleGap);
line(road1X,road1Y,road1X,windowHeight);
line(road1Xh, road1Yh,windowWidth,road1Yh)
rectMode(CENTER)
fill(0)
circle(centreX,centreY,ArcDiameter);
noFill()
fill(255)
circle(centreX,centreY, RoudAboutRadius );
noFill();
arc(centreX,centreY , ArcDiameter, ArcDiameter , 90+angleGap, 180-angleGap);
let Road2X = centreX + ArcDiameter/2*cos(90+angleGap)
let Road2Y = centreY + ArcDiameter/2*sin(90+angleGap)
let Road2Xh = centreX + ArcDiameter/2*cos(180-angleGap)
let Road2Yh = centreY + ArcDiameter/2*sin(180-angleGap)
line (Road2X,Road2Y ,Road2X ,windowHeight);
line (Road2Xh, Road2Yh, 0,Road2Yh)
arc(centreX,centreY , ArcDiameter, ArcDiameter , 180+angleGap, 270-angleGap);
let Road3X = centreX + ArcDiameter/2*cos(270-angleGap)
let Road3Y = centreY + ArcDiameter/2*sin(270-angleGap)
let Road3Xh = centreX + ArcDiameter/2*cos(180+angleGap)
let Road3Yh = centreY + ArcDiameter/2*sin(180+angleGap)
line (Road3X,Road3Y ,Road3X ,0);
line (Road3Xh,Road3Yh ,0,Road3Yh);
//Black left
fill(0)
rect(0,(Road2Yh+Road3Yh)/2, Road3Xh*2, (Road3Yh-Road2Yh) )
noFill();
arc(centreX,centreY , ArcDiameter, ArcDiameter , 270+angleGap, 360-angleGap);
let Road4X = centreX + ArcDiameter/2*cos(270+angleGap)
let Road4Y = centreY + ArcDiameter/2*sin(270+angleGap)
let Road4Xh = centreX + ArcDiameter/2*cos( 360-angleGap)
let Road4Yh = centreY + ArcDiameter/2*sin( 360-angleGap)
line (Road4X,Road4Y ,Road4X ,0);
line (Road4Xh,Road4Yh ,windowWidth,Road4Yh);
// black Top
fill(0)
rect((Road3X+Road4X)/2 , 0, (Road4X-Road3X), Road4Yh*1.47)
noFill();
fill(0)
rect(windowWidth,(road1Yh+Road4Yh)/2, Road3Xh*2,road1Yh-Road4Yh)
rect((Road2X+road1X)/2, windowHeight,road1X-Road2X, Road4Yh*1.47)
noFill()
//Inner Top
fill(255)
rect((Road3X+Road4X)/2,0, (Road4X-Road3X)/7, Road4Yh*1.47 )
//Inner bottom
rect((Road2X+road1X)/2, windowHeight,(road1X-Road2X)/7, Road4Yh*1.47)
//Inner left
rect(0,(Road2Yh+Road3Yh)/2, Road3Xh*2, (Road3Yh-Road2Yh)/7 )
//Inner Right
rect(windowWidth,(road1Yh+Road4Yh)/2, Road3Xh*2,(road1Yh-Road4Yh)/7)
let k=0;
fill("red")
rect( (Road4X-Road3X)/4+Road3X,k, 20 )
noFill();
k=k+1;
if (k==Road4Y )
{
k=0;
}
while(i<100)
{
let sidex1=random(Road3X*0.8);
let sidey=random(Road3Yh*0.9);
let sidex4 = random(Road4X+ Road3X*0.8)
let sidey4 = random(Road3Yh*0.9)
let radius=0;
fill(random(255),random(255),random(255));
// circle(sidex1,sidey, 10);
i++;
}
if (i>=50)
{
i=0;
}
for(let j=0; j<= 20; j++)
{
}
}
function windowResized() {
resizeCanvas(windowWidth, windowHeight); // Adjust canvas when window size changes
}