<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
							 | 
						|
								<html>
							 | 
						|
								<head>
							 | 
						|
								  <title>Graph 3D camera position</title>
							 | 
						|
								
							 | 
						|
								  <style>
							 | 
						|
								    body {font: 10pt arial;}
							 | 
						|
								    td {font: 10pt arial}
							 | 
						|
								  </style>
							 | 
						|
								
							 | 
						|
								  <script type="text/javascript" src="../../dist/vis.js"></script>
							 | 
						|
								
							 | 
						|
								  <script type="text/javascript">
							 | 
						|
								    var data = null;
							 | 
						|
								    var graph = null;
							 | 
						|
								
							 | 
						|
								    function custom(x, y) {
							 | 
						|
								      return (Math.sin(x/50) * Math.cos(y/50) * 50 + 50);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    // callback function, called when the camera position has changed
							 | 
						|
								    function onCameraPositionChange() {
							 | 
						|
								      // adjust the values of startDate and endDate
							 | 
						|
								      var pos = graph.getCameraPosition();
							 | 
						|
								      document.getElementById('horizontal').value = parseFloat(pos.horizontal.toFixed(3));
							 | 
						|
								      document.getElementById('vertical').value   = parseFloat(pos.vertical.toFixed(3));
							 | 
						|
								      document.getElementById('distance').value   = parseFloat(pos.distance.toFixed(3));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    // set the camera position
							 | 
						|
								    function setCameraPosition() {
							 | 
						|
								      var horizontal = parseFloat(document.getElementById('horizontal').value);
							 | 
						|
								      var vertical = parseFloat(document.getElementById('vertical').value);
							 | 
						|
								      var distance = parseFloat(document.getElementById('distance').value);
							 | 
						|
								      var pos = {
							 | 
						|
								        horizontal: horizontal,
							 | 
						|
								        vertical: vertical,
							 | 
						|
								        distance: distance
							 | 
						|
								      };
							 | 
						|
								      graph.setCameraPosition(pos);
							 | 
						|
								
							 | 
						|
								      // retrieve the camera position again, to get the applied values
							 | 
						|
								      onCameraPositionChange();
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    // Called when the Visualization API is loaded.
							 | 
						|
								    function drawVisualization() {
							 | 
						|
								      // Create and populate a data table.
							 | 
						|
								      data = new vis.DataSet();
							 | 
						|
								      // create some nice looking data with sin/cos
							 | 
						|
								      var steps = 50;  // number of datapoints will be steps*steps
							 | 
						|
								      var axisMax = 314;
							 | 
						|
								      var axisStep = axisMax / steps;
							 | 
						|
								      for (var x = 0; x < axisMax; x+=axisStep) {
							 | 
						|
								        for (var y = 0; y < axisMax; y+=axisStep) {
							 | 
						|
								          var value = custom(x,y);
							 | 
						|
								          data.add([
							 | 
						|
								            {x:x,y:y,z:value,t:0,style:value}
							 | 
						|
								          ]);
							 | 
						|
								        }
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      // specify options
							 | 
						|
								      var options = {
							 | 
						|
								        width:  '600px',
							 | 
						|
								        height: '600px',
							 | 
						|
								        style: 'surface',
							 | 
						|
								        showPerspective: true,
							 | 
						|
								        showGrid: true,
							 | 
						|
								        showShadow: false,
							 | 
						|
								        keepAspectRatio: true,
							 | 
						|
								        verticalRatio: 0.5
							 | 
						|
								      };
							 | 
						|
								
							 | 
						|
								      // create our graph
							 | 
						|
								      var container = document.getElementById('mygraph');
							 | 
						|
								      graph = new vis.Graph3d(container, data, options);
							 | 
						|
								
							 | 
						|
								      graph.on('cameraPositionChange', onCameraPositionChange);
							 | 
						|
								    }
							 | 
						|
								  </script>
							 | 
						|
								</head>
							 | 
						|
								
							 | 
						|
								<body onload="drawVisualization()">
							 | 
						|
								<h1>Graph 3d camera position</h1>
							 | 
						|
								<table>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>Horizontal angle (0 to 2*pi)</td>
							 | 
						|
								    <td><input type="text" id="horizontal" value="1.0"></td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>Vertical angle (0 to 0.5*pi)</td>
							 | 
						|
								    <td><input type="text" id="vertical" value="0.5"></td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td>Distance (0.71 to 5.0)</td>
							 | 
						|
								    <td><input type="text" id="distance" value="1.7"></td>
							 | 
						|
								  </tr>
							 | 
						|
								  <tr>
							 | 
						|
								    <td></td>
							 | 
						|
								    <td><input type="button" value="Set" onclick="setCameraPosition();"></td>
							 | 
						|
								  </tr>
							 | 
						|
								</table>
							 | 
						|
								
							 | 
						|
								<div id="mygraph"></div>
							 | 
						|
								
							 | 
						|
								<div id="info"></div>
							 | 
						|
								</body>
							 | 
						|
								</html>
							 |