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>
|