Illusionistic Pattern Making using the basic html,css and javascript. Follow for more....
Prince

Prince @prince_beec5ccde00b7c6c73

About: Hie I'm Prince , passionate Mern stack developer with the strong foundation of the basics with foundation i used to create reels or videos for the linkedin ,instagram and youtube follow me there .

Location:
Gurdaspur,Punjab,India
Joined:
Sep 9, 2024

Illusionistic Pattern Making using the basic html,css and javascript. Follow for more....

Publish Date: Mar 16
2 0

Full code for the above pattern is:
`<!DOCTYPE html>




Infinity Grid Illusion
<br> * { margin: 0; padding: 0; box-sizing: border-box; }<br> body {<br> background: black;<br> overflow: hidden;<br> display: flex;<br> align-items: center;<br> justify-content: center;<br> height: 100vh;<br> }<br> canvas {<br> position: absolute;<br> }<br>


<script>
    const canvas = document.getElementById("gridCanvas");
    const ctx = canvas.getContext("2d");
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;

    let cols = 20, rows = 20;
    let cellSize = Math.min(canvas.width, canvas.height) / cols;
    let time = 0;

    function getColor(x, y) {
        const colors = ["#FF0077", "#00FFD1", "#FFAA00", "#8822FF", "#00CCFF"];
        return colors[(Math.floor(x / cellSize) + Math.floor(y / cellSize) + Math.floor(time * 2)) % colors.length];
    }

    function drawGrid() {
        ctx.clearRect(0, 0, canvas.width, canvas.height);
        ctx.lineWidth = 2;

        for (let i = -1; i < cols; i++) {
            for (let j = -1; j < rows; j++) {
                let x = i * cellSize;
                let y = j * cellSize;

                let dx = x - canvas.width / 2;
                let dy = y - canvas.height / 2;
                let dist = Math.sqrt(dx * dx + dy * dy);

                // Warping effect
                let warpFactor = Math.sin(dist * 0.015 + time) * 15;

                let offsetX = warpFactor * Math.cos(time * 0.5);
                let offsetY = warpFactor * Math.sin(time * 0.5);

                ctx.strokeStyle = getColor(x, y);

                ctx.beginPath();
                ctx.rect(x + offsetX, y + offsetY, cellSize, cellSize);

                // Random flickering effect on some cells
                if (Math.random() > 0.97) {
                    ctx.fillStyle = ctx.strokeStyle;
                    ctx.fill();
                }

                ctx.stroke();
            }
        }

        time += 0.02;
        requestAnimationFrame(drawGrid);
    }

    drawGrid();
</script>



`

Comments 0 total

    Add comment