Fern (fractal): Difference between revisions

From JSXGraph Wiki
(New page: <html> <link rel="stylesheet" type="text/css" href="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css" /> <script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/pro...)
 
No edit summary
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<html>
Do 100 iterations:
<link rel="stylesheet" type="text/css" href="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css" />
<html><form><input type='button' value="OK" onClick="ifs();"></form></html>
<script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/prototype.js"></script>
<jsxgraph width="600" height="400" box="box">
<script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraphcore.js"></script>
         board = JXG.JSXGraph.initBoard('box', {boundingbox: [-49, 71.8, 70, -5.2]});
<div id="box" class="jxgbox" style="width:600px; height:300px;"></div>
         var p = board.create('point', [0,0], {style:10,labelcolor:'#FFFFFF00'});
<script language="JavaScript">
         board = JXG.JSXGraph.initBoard('box', {originX: 250, originY: 490, unitX: 5, unitY: 5});
         var p = board.createElement('point', [0,0], {style:10,labelcolor:'#FFFFFF00'});
         function ifs() {
         function ifs() {
             board.suspendUpdate();
             board.suspendUpdate();
Line 14: Line 11:
                 var prob = Math.random();
                 var prob = Math.random();
                 if(prob < 0.85) {
                 if(prob < 0.85) {
                     p = board.createElement('point', [0.85*x+0.04*y+0,-0.04*x+0.85*y+10.6], {style:10,labelcolor:'#FFFFFF00'});
                     p = board.create('point', [0.85*x+0.04*y+0,-0.04*x+0.85*y+10.6],  
                                {size:1, face:'o', withLabel:false});
                 }
                 }
                 else if(prob >= 0.85 && prob < 0.92) {
                 else if(prob >= 0.85) if (prob < 0.92) {
                     p = board.createElement('point', [0.2*x-0.26*y+0,0.23*x+0.22*y+10.6], {style:10,labelcolor:'#FFFFFF00'});
                     p = board.create('point', [0.2*x-0.26*y+0,0.23*x+0.22*y+10.6],  
                                {size:1, face:'o', withLabel:false});
                 }
                 }
                 else if(prob >= 0.92 && prob < 0.99) {
                 else if(prob >= 0.92) if (prob < 0.99) {
                     p = board.createElement('point', [-0.15*x+0.28*y+0,0.26*x+0.24*y+4.4], {style:10,labelcolor:'#FFFFFF00'});
                     p = board.create('point', [-0.15*x+0.28*y+0,0.26*x+0.24*y+4.4],  
                                {size:1, face:'o', withLabel:false});
                 }
                 }
                 else {
                 else {
                     p = board.createElement('point', [0*x+0*y+0,0*x+0.16*y+0], {style:10,labelcolor:'#FFFFFF00'});
                     p = board.create('point', [0*x+0*y+0,0*x+0.16*y+0],  
                                {size:1, face:'o', withLabel:false});
                 }
                 }
             }
             }
             board.unsuspendUpdate();
             board.unsuspendUpdate();
         }
         }
</script>
</jsxgraph>
</html>
 
=== References ===
* [http://en.wikipedia.org/wiki/Iterated_function_system http://en.wikipedia.org/wiki/Iterated_function_system]
 
=== The underlying JavaScript code ===


<source lang="javascript">
<source lang="javascript">
         board = JXG.JSXGraph.initBoard('box', {originX: 250, originY: 490, unitX: 5, unitY: 5});
         board = JXG.JSXGraph.initBoard('box', {boundingbox: [-49, 71.8, 70, -5.2]});
         var p = board.createElement('point', [0,0], {style:10,labelcolor:'#FFFFFF00'});
         var p = board.create('point', [0,0], {style:10,labelcolor:'#FFFFFF00'});
         function ifs() {
         function ifs() {
             board.suspendUpdate();
             board.suspendUpdate();
Line 41: Line 46:
                 var prob = Math.random();
                 var prob = Math.random();
                 if(prob < 0.85) {
                 if(prob < 0.85) {
                     p = board.createElement('point', [0.85*x+0.04*y+0,-0.04*x+0.85*y+10.6], {style:10,labelcolor:'#FFFFFF00'});
                     p = board.create('point', [0.85*x+0.04*y+0,-0.04*x+0.85*y+10.6],  
                                {size:1, face:'o', withLabel:false});
                 }
                 }
                 else if(prob >= 0.85 && prob < 0.92) {
                 else if(prob >= 0.85) if (prob < 0.92) {
                     p = board.createElement('point', [0.2*x-0.26*y+0,0.23*x+0.22*y+10.6], {style:10,labelcolor:'#FFFFFF00'});
                     p = board.create('point', [0.2*x-0.26*y+0,0.23*x+0.22*y+10.6],  
                                {size:1, face:'o', withLabel:false});
                 }
                 }
                 else if(prob >= 0.92 && prob < 0.99) {
                 else if(prob >= 0.92) if (prob < 0.99) {
                     p = board.createElement('point', [-0.15*x+0.28*y+0,0.26*x+0.24*y+4.4], {style:10,labelcolor:'#FFFFFF00'});
                     p = board.create('point', [-0.15*x+0.28*y+0,0.26*x+0.24*y+4.4],  
                                {size:1, face:'o', withLabel:false});
                 }
                 }
                 else {
                 else {
                     p = board.createElement('point', [0*x+0*y+0,0*x+0.16*y+0], {style:10,labelcolor:'#FFFFFF00'});
                     p = board.create('point', [0*x+0*y+0,0*x+0.16*y+0],  
                                {size:1, face:'o', withLabel:false});
                 }
                 }
             }
             }
Line 59: Line 68:


[[Category:Examples]]
[[Category:Examples]]
[[Category:Fractals]]

Latest revision as of 11:21, 13 October 2015

Do 100 iterations:

References

The underlying JavaScript code

        board = JXG.JSXGraph.initBoard('box', {boundingbox: [-49, 71.8, 70, -5.2]});
        var p = board.create('point', [0,0], {style:10,labelcolor:'#FFFFFF00'});
        function ifs() {
            board.suspendUpdate();
            for(var i=1; i<= 100; i++) {
                var x = p.coords.usrCoords[1];
                var y = p.coords.usrCoords[2];
                var prob = Math.random();
                if(prob < 0.85) {
                    p = board.create('point', [0.85*x+0.04*y+0,-0.04*x+0.85*y+10.6], 
                                {size:1, face:'o', withLabel:false});
                }
                else if(prob >= 0.85) if (prob < 0.92) {
                    p = board.create('point', [0.2*x-0.26*y+0,0.23*x+0.22*y+10.6], 
                                {size:1, face:'o', withLabel:false});
                }
                else if(prob >= 0.92) if (prob < 0.99) {
                    p = board.create('point', [-0.15*x+0.28*y+0,0.26*x+0.24*y+4.4], 
                                {size:1, face:'o', withLabel:false});
                }
                else {
                    p = board.create('point', [0*x+0*y+0,0*x+0.16*y+0], 
                                {size:1, face:'o', withLabel:false});
                }
            }
            board.unsuspendUpdate();
        }