Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
0f63e7840a
commit
4af8bbf3b0
110
js/dos/ext/vis/examples/graph3d/02_camera.html
Normal file
110
js/dos/ext/vis/examples/graph3d/02_camera.html
Normal file
|
@ -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>
|
Loading…
Reference in New Issue
Block a user