Published source code to dev.josh47 repository
This commit is contained in:
		
							
								
								
									
										159
									
								
								floorspace/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										159
									
								
								floorspace/index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,159 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
<!--
 | 
			
		||||
 | 
			
		||||
Licencse: CC0
 | 
			
		||||
Full text in LICENSE file and at:
 | 
			
		||||
http://creativecommons.org/publicdomain/zero/1.0/
 | 
			
		||||
 | 
			
		||||
Get the source at http://bitbucket.org/joruffin/floorspace/
 | 
			
		||||
 | 
			
		||||
To the extent possible under law, The Eloquent Peasants have waived all
 | 
			
		||||
copyright and related or neighboring rights to Floor Space Visualizer.
 | 
			
		||||
This work is published from: United States. 
 | 
			
		||||
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<meta charset="UTF-8"/>
 | 
			
		||||
<title>Floor Space Visualizer</title>
 | 
			
		||||
<link href="https://josh47.com/project/floorspace/style.css" rel="stylesheet"/>
 | 
			
		||||
<script type="text/javascript" src="https://josh47.com/project/floorspace/jquery-1.7.1.min.js"></script>
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
 scale = 0.25;
 | 
			
		||||
 ratio = 1.33;
 | 
			
		||||
 th = Math.floor(350 * scale);
 | 
			
		||||
 units = 1;
 | 
			
		||||
 floors = 1;
 | 
			
		||||
 yheight = 1;
 | 
			
		||||
 ty = 1; 		// Number of tiles fit vertically in surface
 | 
			
		||||
 tx = 1;		// Number of tiles fit horizontally in surface
 | 
			
		||||
 | 
			
		||||
 function resize(){
 | 
			
		||||
   mh = Math.floor(420 * scale);
 | 
			
		||||
   th = Math.floor(350 * scale);
 | 
			
		||||
   $('.tile').height(th);
 | 
			
		||||
   ty = Math.ceil(yheight); 			// Number of tiles fit vertically in surface
 | 
			
		||||
   tx = Math.ceil(yheight*ratio);		// Number of tiles fit horizontally in surface
 | 
			
		||||
   $('#surface').height(th * yheight);
 | 
			
		||||
   $('#surface').width(th * yheight*ratio);
 | 
			
		||||
   //alert("Scale: " + scale + "\nRatio: " + ratio + "\nTX: " + tx + "\nTY: " + ty + "\nTH: " + th + "\nMH: " + mh);
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 function addTile(){
 | 
			
		||||
   x = Math.floor($('.tile').length / ty);
 | 
			
		||||
   y = $('.tile').length % ty;
 | 
			
		||||
   el = $(document.createElement('img'));
 | 
			
		||||
   el.attr('id','sur'+x+y);
 | 
			
		||||
   el.addClass('tile');
 | 
			
		||||
   el.attr('src', 'https://josh47.com/project/floorspace/tile.png');
 | 
			
		||||
   el.width(th);
 | 
			
		||||
   el.height(th);
 | 
			
		||||
   el.attr('alt', 'A 25 square foot floor tile.');
 | 
			
		||||
   el.css('bottom', y * th);
 | 
			
		||||
   el.css('left', x * th);
 | 
			
		||||
   $('#surface').append(el);
 | 
			
		||||
   // xdelay = 150 * ty * x;
 | 
			
		||||
   xdelay = 200 * x;
 | 
			
		||||
   ydelay = 100 * y;
 | 
			
		||||
   el.hide().delay(xdelay+ydelay).fadeTo(300,0.8);
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 function createFloor(){
 | 
			
		||||
   $('#surface').html('');
 | 
			
		||||
   if($('#man').css('display') == 'none') {
 | 
			
		||||
     $('#man').height(0);
 | 
			
		||||
     $('#man').show();
 | 
			
		||||
   };
 | 
			
		||||
   $('#man').animate({height:mh},300,'linear', function(){
 | 
			
		||||
     $('#ratio').fadeIn(300, function(){
 | 
			
		||||
       for( i=0; i < tx * ty; i++) {
 | 
			
		||||
         addTile();
 | 
			
		||||
       }
 | 
			
		||||
     });
 | 
			
		||||
   });
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 function submitForm(){
 | 
			
		||||
   feet = $('#feet').val();
 | 
			
		||||
   if (feet < 0) return false;
 | 
			
		||||
   floors = $('#floors').val();
 | 
			
		||||
   if (floors < 0) return false;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Solve:
 | 
			
		||||
 | 
			
		||||
   height = x;
 | 
			
		||||
   width = ratio*x;
 | 
			
		||||
   units = width * height;
 | 
			
		||||
   units = x * (ratio*x);
 | 
			
		||||
   units = ratio*x*x;
 | 
			
		||||
   units / ratio = x*x;
 | 
			
		||||
   sqrt(units/ratio) = x;
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
   units = feet / floors / 25; 		// each tile is 25sq feet
 | 
			
		||||
   w = $('#floor').width(); 	
 | 
			
		||||
   h = $('#floor').height();	 	// fill the surface with 
 | 
			
		||||
   yheight = Math.sqrt(units / ratio);	// tiles of target size
 | 
			
		||||
   scale = h / 350 / yheight;
 | 
			
		||||
   resize();
 | 
			
		||||
   createFloor();
 | 
			
		||||
   return false;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 $(document).ready(function(){
 | 
			
		||||
   $(window).resize(resize);
 | 
			
		||||
   resize();
 | 
			
		||||
   $('#submit').click(submitForm);
 | 
			
		||||
/*   $('#ratio').slider({
 | 
			
		||||
     min: 1/2,
 | 
			
		||||
     max: 2*1,
 | 
			
		||||
     step:0.01,
 | 
			
		||||
     value:1.33,
 | 
			
		||||
     slide:function(event, ui){
 | 
			
		||||
       ratio = ui.value;
 | 
			
		||||
       resize();
 | 
			
		||||
     }
 | 
			
		||||
   });
 | 
			
		||||
*/
 | 
			
		||||
 });
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
<div id="container">
 | 
			
		||||
	<form id="apt">
 | 
			
		||||
		<label>Square Feet <input id="feet" type="number" name="feet"/></label>
 | 
			
		||||
		<label>Floors <input id="floors" type="number" name="floors" value="1"/></label>
 | 
			
		||||
		<input id="submit" type="Submit" value="Show me"/>
 | 
			
		||||
	</form>
 | 
			
		||||
	<div id="key">
 | 
			
		||||
		<img src="https://josh47.com/project/floorspace/man.png" height="30" width="13" alt="A man icon."/> = 6ft tall,
 | 
			
		||||
		<img src="https://josh47.com/project/floorspace/tile.png" height="30" width="30" alt="A floor tile."/> = 25ft<sup>2</sup> = 5ft per side.
 | 
			
		||||
	</div>
 | 
			
		||||
	<img id="man" src="https://josh47.com/project/floorspace/man.png" height="420" width="220" alt="A six foot man for perspective."/>
 | 
			
		||||
	<div id="floor">
 | 
			
		||||
		<div id="surface"></div>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div id="ratio"></div>
 | 
			
		||||
	<div id="footer">
 | 
			
		||||
<p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#">
 | 
			
		||||
  <a rel="license" href="https://creativecommons.org/publicdomain/zero/1.0/">
 | 
			
		||||
    <img src="https://josh47.com/project/floorspace/80x15.png" style="border-style: none;" alt="CC0" width="80" height="15"/>
 | 
			
		||||
  </a>
 | 
			
		||||
  <br/>
 | 
			
		||||
  To the extent possible under law, <a rel="dct:publisher" href="https://web.archive.org/web/20160305111729/http://eloquentpeasant.net/"><span property="dct:title">The Eloquent Peasants</span></a>
 | 
			
		||||
  have waived all copyright and related or neighboring rights to <span property="dct:title">Floor Space Visualizer</span>.
 | 
			
		||||
  This work is published from: <span property="vcard:Country" datatype="dct:ISO3166" content="US" about="http://eloquentpeasant.net/">United States</span>. Because The Eloquent Peasants' website is no longer functional, this copy of the work is hosted by <a href="https://josh47.com">Josh47.com</a>, and is licensed under LGPLv3. Source code is available <a href="https://dev.josh47.org/Josh47_WebDev/Floorspace">here</a>.
 | 
			
		||||
</p>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
<!--
 | 
			
		||||
     FILE ARCHIVED ON 11:17:29 Mar 05, 2016 AND RETRIEVED FROM THE
 | 
			
		||||
     INTERNET ARCHIVE ON 03:48:11 Feb 19, 2025.
 | 
			
		||||
     JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE, HAS BEEN REMOVED.
 | 
			
		||||
-->
 | 
			
		||||
		Reference in New Issue
	
	Block a user