111 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!doctype html>
 | 
						|
<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>
 | 
						|
  <script src="../googleAnalytics.js"></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>
 |