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