30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!--
 | |
| Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
 | |
| This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
 | |
| The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
 | |
| The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
 | |
| Code distributed by Google as part of the polymer project is also
 | |
| subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
 | |
| -->
 | |
| 
 | |
| <h1>The world's simplest constraint-solver</h1>
 | |
| <script src="constrain.js"></script>
 | |
| <script>
 | |
| function Circle(radius) {
 | |
|   // circumference = 2*PI*radius
 | |
|   constrain(this, {
 | |
|     radius: function() { return this.circumference / (2*Math.PI); },
 | |
|     circumference: function() { return 2 * Math.PI * this.radius; }
 | |
|   });
 | |
| 
 | |
|   // area = PI*r^2'
 | |
|   constrain(this, {
 | |
|     area: function() { return Math.PI * Math.pow(this.radius, 2); },
 | |
|     radius: function() { return Math.sqrt(this.area / Math.PI); }
 | |
|   });
 | |
| 
 | |
|   if (radius)
 | |
|     this.radius = radius;
 | |
| }
 | |
| </script>
 |