diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2016-10-28 13:31:36 -0700 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2016-10-28 13:31:36 -0700 |
| commit | 05e761abca3ff42dbba371af0560b82707dfe7c0 (patch) | |
| tree | 268cc06b931357a0ffad684961ff6d24eeec3b4b /www/lib/vis/examples/graph3d/02_camera.html | |
| parent | 55a9e628760dc31400457099e4aaabc767beed70 (diff) | |
updated vis
Diffstat (limited to 'www/lib/vis/examples/graph3d/02_camera.html')
| -rw-r--r-- | www/lib/vis/examples/graph3d/02_camera.html | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/www/lib/vis/examples/graph3d/02_camera.html b/www/lib/vis/examples/graph3d/02_camera.html new file mode 100644 index 00000000..bbc9f7d0 --- /dev/null +++ b/www/lib/vis/examples/graph3d/02_camera.html @@ -0,0 +1,110 @@ +<!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> |
