summaryrefslogtreecommitdiff
path: root/www/lib/vis/examples/graph3d/02_camera.html
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2016-10-28 13:31:36 -0700
committerPliable Pixels <pliablepixels@gmail.com>2016-10-28 13:31:36 -0700
commit05e761abca3ff42dbba371af0560b82707dfe7c0 (patch)
tree268cc06b931357a0ffad684961ff6d24eeec3b4b /www/lib/vis/examples/graph3d/02_camera.html
parent55a9e628760dc31400457099e4aaabc767beed70 (diff)
updated vis
Diffstat (limited to 'www/lib/vis/examples/graph3d/02_camera.html')
-rw-r--r--www/lib/vis/examples/graph3d/02_camera.html110
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>