we provide information about gadget news and price information and specs samsung, huawei, Tecno Price products, Specifications, Features and more information about software from blackberry and android

Monday, August 20, 2012

Pretty Fractal Trees using HTML-5 Canvas & Random Numbers

Pretty Fractal Trees using HTML-5 Canvas & Random Numbers - Did you know that every day there is always a new technology that is created? if you want to know please refer to the blog Gadget News well now we will discuss first about Pretty Fractal Trees using HTML-5 Canvas & Random Numbers as you need now, we have compiled this article carefully, so please see to finish.

Articles : Pretty Fractal Trees using HTML-5 Canvas & Random Numbers
full Link : Pretty Fractal Trees using HTML-5 Canvas & Random Numbers

You can also see our article on:


    Pretty Fractal Trees using HTML-5 Canvas & Random Numbers

    Last week I sat down to see how I can generate a fractal tree on a web page. It turned out to be a very interesting exercise using HTML5 Canvas and simple Math trigonometric functions. Using random numbers for changing the length of the tree branch, and the angle of branch split -- I was quite successful in generating very realistic looking trees!

    Each time you render the HTML, the trees look quite different. I can see how Game creators can create interesting looking forests for "heroes" to travel in using such techniques.

    HTML 5 Canvas with a Fractal Tree





















    Here is the code (also posted on github):

    <html>
    <head>
    <script type="text/javascript">
    window.onload = draw;
    function draw(){
    var canvas = document.getElementById('myCanvas');
    if (canvas.getContext){
    var context = canvas.getContext('2d');
    drawFractalTree(context);
    }
    else{
    alert("HTML5 Canvas isn't supported by your browser!");
    }
    }
    function drawFractalTree(context){
    drawTree(context, 800, 800, -90, 11);
    }
    function drawTree(context, x1, y1, angle, depth){
    var BRANCH_LENGTH = random(0, 20);
    if (depth != 0){
    var x2 = x1 + (cos(angle) * depth * BRANCH_LENGTH);
    var y2 = y1 + (sin(angle) * depth * BRANCH_LENGTH);
    drawLine(context, x1, y1, x2, y2, depth);
    drawTree(context, x2, y2, angle - random(15,20), depth - 1);
    drawTree(context, x2, y2, angle + random(15,20), depth - 1);
    }
    }
    function drawLine(context, x1, y1, x2, y2, thickness){
    context.fillStyle = '#000';
    if(thickness > 6)
    context.strokeStyle = 'rgb(139,126, 102)'; //Brown
    else
    context.strokeStyle = 'rgb(34,139,34)'; //Green
    context.lineWidth = thickness * 1.5;
    context.beginPath();
    context.moveTo(x1,y1);
    context.lineTo(x2, y2);
    context.closePath();
    context.stroke();
    }
    function cos (angle) {
    return Math.cos(deg_to_rad(angle));
    }
    function sin (angle) {
    return Math.sin(deg_to_rad(angle));
    }
    function deg_to_rad(angle){
    return angle*(Math.PI/180.0);
    }
    function random(min, max){
    return min + Math.floor(Math.random()*(max+1-min));
    }
    </script>
    <style type="text/css">
    canvas { border: 1px solid white; }
    </style>
    </head>
    <body>
    <canvas id="myCanvas" width="1500" height="800"></canvas>
    </body>
    </html>
    view raw tree_html5.html hosted with ❤ by GitHub




    article Pretty Fractal Trees using HTML-5 Canvas & Random Numbers has been completed in the discussion

    hopefully the information Pretty Fractal Trees using HTML-5 Canvas & Random Numbers that we provide can be useful for you to know the development of technology in the present

    articles Pretty Fractal Trees using HTML-5 Canvas & Random Numbers we have conveyed to you, if feel this information is useful and you want to bookmark or share so that more people who know please use link https://profsmythe.blogspot.com/2012/08/pretty-fractal-trees-using-html-5.html.

    Tag :
    Share on Facebook
    Share on Twitter
    Share on Google+
    Tags :

    Related : Pretty Fractal Trees using HTML-5 Canvas & Random Numbers

      0 comments:

      Post a Comment