Skip to main content

A fair play with Maths and JQuery Animation

This is a new try with the simple maths that we already know. I have used basic trigonometric equations and JQuery animation for the play.

DEMO

Demo Explained:
  1. Create set of div and append it to the body
    for (var i = 0; i < 360; i++) {
        //random color
        var color = '#'+parseInt(Math.random()*0xccccc);
        //create and append DOM
        $('<div/>').appendTo('body').css('background',color);
    }
    
    
  2. For random positioning use Math.random() to generate random x,y values


    for (var i = 0; i < 360; i++) {
            var left = 100 + Math.random() * 300 + 'px';
            var top = 100 + Math.random() * 300 + 'px';
            $('div').eq(i).animate({left:left,top:top},1000);
    }
    
    
  3. To draw circle,
    x = tx + r cos(t)
    y = ty + r sin(t)
    so looping through t value from 0 to 360 will generate circle


    for (var i = 0; i < 360; i++) {
            r = 150;
            var left = 400 + r*Math.cos(i);
            var top = 200 + r*Math.sin(i);
            $('div').eq(i).animate({left:left,top:top},1000);              
        }
    
    
  4. To draw sine wave,
    y = constant
    x = tx + r sin(t)
    so looping through value from 0 to 360 will generate sine wave




    for (var i = 0; i < 360; i++) {
            r = 100;
            var left = i*10;
            var top = 300 + 10 * Math.sin(i);
            $('div').eq(i).animate({left:left,top:top},1000);              
        }
    
    
  5. To draw cos wave,
    y = constant
    x = tx + r cos(t)
    so looping through value from 0 to 360 will generate cos wave




    for (var i = 0; i < 360; i++) {
            var left = i*10;
            var top = 300 + 10 * Math.cos(i);
            $('div').eq(i).animate({left:left,top:top},1000);              
    }
    
    
  6. For animating DOM elements to a single point (mouse click over document), get x,y position using mouse click event and animate each element towards the point with setTimeout function



    $(document).on('click',function(e){
        for (var i = 0; i < 360; i++) {
            var left = e.clientX + 'px';
            var top = e.clientY + 'px';
            var f = (function(i){
                return function(){
                    $('div').eq(i).animate({left:left,top:top},500);
                };
            })(i);
            setTimeout(f,i*5);
        }
    });
    
    

Comments

Popular posts from this blog

Random Bouncing Ball Animation

Simple animation of random balls that bounces within the screen Source: #include<stdio.h> #include<graphics.h> #include<conio.h> #include<dos.h> #include<math.h> void drawBall(struct ball *b, int color); struct ball{ int x, y; int dx, dy; int radius; }; void main() { int gd=0, gm=VGAHI; int i; struct ball b[10]; initgraph(&gd, &gm, ""); for(i=1;i<=15;i++){ b[i].radius = rand()%20; b[i].x=rand()%getmaxx(); b[i].y=rand()%getmaxy(); b[i].dx=2; b[i].dy=4; } while(!kbhit()) { delay(5); cleardevice(); for(i=1;i<=15;i++) drawBall(&b[i],i); } closegraph(); } void drawBall(struct ball *b, int color){ setfillstyle(1,color); setcolor(color); fillellipse(b->x, b->y, b->radius, b->radius); if(b->x+b->radius > getmaxx() || b->x-b->radius<0) b->dx = -b->dx; if(b->y+b->radius > getmaxy() || b->y-b->radius<0) b->dy = -b->dy; b->x+=b-...

Simple Animation Using C

Here i have used fillpoly function to draw the object body and used fillellipse function to draw tier. animation is done by looping through the objects x & y position until user hits a key. Keypress event is achived  by using kbhit function. Smoothness of animation is controlled by delay function. Change the delay values to change the animation speed Source: #include<stdio.h> #include<conio.h> #include<graphics.h> #include<dos.h> void main() { int gd=DETECT,gm,i=-300,j; int poly[16]={100,100,250,100,250,50,300,50,325,90,325,140,100,140,100,100}; int tpoly[16]={100,100,250,100,250,50,300,50,325,90,325,140,100,140,100,100}; initgraph(&gd,&gm,""); getch(); while(!kbhit()) { for(j=0;j<16;j+=2) { poly[j]=tpoly[j]+i; } fillpoly(8,poly); setfillstyle(5,7); bar(275+i,60,295+i,85); setfillstyle(5,8); fillellipse(140+i,140,20,20); fillellipse(280+i,140,20,20); setfillstyle(1,0); fillellipse(140+i,140,10,10); fillellipse(280+i,140,10...

RGB in C

Default palette size for normal graphics driver is 16 i.e) the color number rages from 0 to 15 To use rgb color modes we have to choose VGA or IBM 8514 as a graphics driver For VGA, Palette size is 16 i.e) color number ranges from 0-16 For IBM 8514, Palette size is 256 i.e) color number ranges from 0-255, we can also say it as VGA with 256 palette size By using setrgbpalette function we can generate RGB colors, we can generate colors with respect to Palette size. This function replaces the default palette colors with the generated Palette colors. Syntax: void setrgbpalette(int colornum, int red, int green, int blue); /* colornum - color number in palette (0-15 or 0-255 depens on graphics driver) red - color value for red (0-255) green - color value for green (0-255) blue - color value for blue (0-255) */ Example: #include<graphics.h> #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<time.h> void main(){ in...