Canvas Orbital Trails
How do I make an canvas orbital trails?
Click and drag anywhere on the screen to create new trails. Also, be sure to check v2: http://codepen.io/jackrugile/pen/aCzHs. What is a canvas orbital trails? How do you make a canvas orbital trails? This script and codes were developed by Jack Rugile on 12 June 2022, Sunday.
Canvas Orbital Trails - Script Codes HTML Codes
<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>Canvas Orbital Trails</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"> <style> /* NOTE: The styles were added inline because Prefixfree needs access to your styles and they must be inlined if they are on local disk! */ body { background: #000; color: #aaa; font: 100%/20px helvetica, arial, sans-serif;
}
canvas { display: block; height: 100%; left: 0; margin: 0; padding: 0; position: absolute; top: 0; width: 100%
}
#control-panel { background: rgba(0,0,0,.75); border: 1px solid #333; left: 20px; padding: 10px 15px; position: absolute; top: 20px; z-index: 2;
}
p { font-size: 12px; margin: 0 0 5px;
}
label { font-size: 12px; font-weight: bold;
}
button { display: block; margin: 10px 0 5px;
}
a { border-bottom: 1px dotted #444; color: #fff; font-size: 12px; text-decoration: none;
} </style> <script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
</head>
<body> <div id="control-panel">
<p>Click and drag to make more!</p>
<label>Trails: </label>
<input type="checkbox" id="trail" name="trail" checked />
<button id="clear">Clear</button>
<a href="http://codepen.io/jackrugile/pen/aCzHs">View Version 2</a>
</div>
<canvas id="c"></canvas> <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> <script src="js/index.js"></script>
</body>
</html>
Canvas Orbital Trails - Script Codes CSS Codes
body { background: #000; color: #aaa; font: 100%/20px helvetica, arial, sans-serif;
}
canvas { display: block; height: 100%; left: 0; margin: 0; padding: 0; position: absolute; top: 0; width: 100%
}
#control-panel { background: rgba(0,0,0,.75); border: 1px solid #333; left: 20px; padding: 10px 15px; position: absolute; top: 20px; z-index: 2;
}
p { font-size: 12px; margin: 0 0 5px;
}
label { font-size: 12px; font-weight: bold;
}
button { display: block; margin: 10px 0 5px;
}
a { border-bottom: 1px dotted #444; color: #fff; font-size: 12px; text-decoration: none;
}
Canvas Orbital Trails - Script Codes JS Codes
window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1E3/60)}}();
document.onselectstart = function() { return false;
};
var c = document.getElementById('c');
var ctx = c.getContext('2d');
c.width = cw = window.innerWidth;
c.height = ch = window.innerHeight;
var rand = function(rMi, rMa){return ~~((Math.random()*(rMa-rMi+1))+rMi);}
ctx.lineCap = 'round';
var orbs = [];
var orbCount = 30;
var radius;
var trailCB = document.getElementById('trail');
var trail = trailCB.checked;
var clearer = document.getElementById('clear');
function createOrb(mx,my){ var dx = (cw/2) - mx; var dy = (ch/2) - my; var dist = Math.sqrt(dx * dx + dy * dy); var angle = Math.atan2(dy, dx); orbs.push({ x: mx, y: my, lastX: mx, lastY: my, hue: 0, colorAngle: 0, angle: angle + Math.PI/2, //size: .5+dist/250, size: rand(1,3)/2, centerX: cw/2, centerY: ch/2, radius: dist, speed: (rand(5,10)/1000)*(dist/750)+.015, alpha: 1 - Math.abs(dist)/cw, draw: function() { ctx.strokeStyle = 'hsla('+this.colorAngle+',100%,50%,1)'; ctx.lineWidth = this.size; ctx.beginPath(); ctx.moveTo(this.lastX, this.lastY); ctx.lineTo(this.x, this.y); ctx.stroke(); }, update: function(){ var mx = this.x; var my = this.y; this.lastX = this.x; this.lastY = this.y; var x1 = cw/2; var y1 = ch/2; var x2 = mx; var y2 = my; var rise = y1-y2; var run = x1-x2; var slope = -(rise/run); var radian = Math.atan(slope); var angleH = Math.floor(radian*(180/Math.PI)); if(x2 < x1 && y2 < y1){angleH += 180;} if(x2 < x1 && y2 > y1){angleH += 180;} if(x2 > x1 && y2 > y1){angleH += 360;} if(y2 < y1 && slope =='-Infinity'){angleH = 90;} if(y2 > y1 && slope =='Infinity'){angleH = 270;} if(x2 < x1 && slope =='0'){angleH = 180;} if(isNaN(angleH)){angleH = 0;} this.colorAngle = angleH; this.x = this.centerX + Math.sin(this.angle*-1) * this.radius; this.y = this.centerY + Math.cos(this.angle*-1) * this.radius; this.angle += this.speed; } });
}
function orbGo(e){ var mx = e.pageX - c.offsetLeft; var my = e.pageY - c.offsetTop; createOrb(mx,my);
}
function turnOnMove(){ c.addEventListener('mousemove', orbGo, false);
}
function turnOffMove(){ c.removeEventListener('mousemove', orbGo, false);
}
function toggleTrails(){ trail = trailCB.checked;
}
function clear(){ orbs = [];
}
c.addEventListener('mousedown', orbGo, false);
c.addEventListener('mousedown', turnOnMove, false);
c.addEventListener('mouseup', turnOffMove, false);
trailCB.addEventListener('change', toggleTrails, false);
clearer.addEventListener('click', clear, false);
var count = 100;
while(count--){ createOrb(cw/2, ch/2+(count*2));
}
var loop = function(){ window.requestAnimFrame(loop); if(trail){ ctx.fillStyle = 'rgba(0,0,0,.1)'; ctx.fillRect(0,0,cw,ch); } else { ctx.clearRect(0,0,cw,ch); } var i = orbs.length; while(i--){ var orb = orbs[i]; var updateCount = 3; while(updateCount--){ orb.update(); orb.draw(ctx); } }
}
loop();
Developer | Jack Rugile |
Username | jackrugile |
Uploaded | June 12, 2022 |
Rating | 3 |
Size | 3,697 Kb |
Views | 70,840 |
Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!
Name | Size |
Canvas Sparkle Light Trail | 3,618 Kb |
Canvas Orbital Trails v2 | 3,421 Kb |
Organic Circle Canvas Loader | 2,428 Kb |
CSS3 Pseudo Sound Bars | 2,400 Kb |
Canvas Bokeh Generation | 2,935 Kb |
Bouncing Ball Animation | 1,952 Kb |
Canvas Waterfall | 3,324 Kb |
Canvas Simple Circle Loader | 2,946 Kb |
Snake Game - CSS Renderer | 7,412 Kb |
Rainbow Loader | 2,022 Kb |
Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!
Name | Username | Size |
Drill-down Map | Good886 | 8,484 Kb |
A Pen by lizz | Lizz | 10,068 Kb |
Learning canvas drawing | Aurer | 2,204 Kb |
A Pen by Eka Risyana | Risyana | 3,705 Kb |
Fading gradient button | Insprd | 1,713 Kb |
Flex Chart | James_zedd | 4,111 Kb |
MAD9013 - Float Images with Content | Mad-d | 2,220 Kb |
Price | Catcode | 2,623 Kb |
CSS Org Chart | Appirio-ux | 3,882 Kb |
Confirm Close Of Foundation Reveal Modal | Winghouchan | 1,818 Kb |
Surf anonymously, prevent hackers from acquiring your IP address, send anonymous email, and encrypt your Internet connection. High speed, ultra secure, and easy to use. Instant setup. Hide Your IP Now!