首页 > 其他分享 >vis.js摄像机位置

vis.js摄像机位置

时间:2024-04-23 10:34:14浏览次数:27  
标签:graph value js 摄像机 vis getElementById parseFloat var document

  • 代码案例
<!DOCTYPE html>
<html>
  <head>
    <title>Graph 3D demo</title>
    <style>
        body {
            font: 10pt arial;
        }
        td {
            font: 10pt arial;
        }
    </style>
    <script
      type="text/javascript"
      src="https://unpkg.com/vis-graph3d@latest/dist/vis-graph3d.min.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);
        }

        window.addEventListener("load", () => {
        drawVisualization();
        });

    </script>
  </head>
  <body onl oad="drawVisualization();">
    <table>
        <tbody>
          <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>
        </tbody>
    </table>
      
    <div id="mygraph"></div>
      
    <div id="info"></div>
      
  </body>
</html>
  • 效果图
点击查看详情

标签:graph,value,js,摄像机,vis,getElementById,parseFloat,var,document
From: https://www.cnblogs.com/dogleftover/p/18152292

相关文章

  • vis.js绘制3d图形
    案例1代码案例<!DOCTYPEhtml><html><head><title>Graph3Ddemo</title><scripttype="text/javascript"src="https://unpkg.com/vis-graph3d@latest/dist/vis-graph3d.min.js"><......
  • vis.js分组多图折线图
    代码案例<!doctypehtml><html><head><title>Timeline</title><scripttype="text/javascript"src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script>......
  • vis.js着色
    代码案例<!doctypehtml><html><head><title>Timeline</title><scripttype="text/javascript"src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script>......
  • vis.js滚动折线图
    代码案例<!doctypehtml><html><head><title>Timeline</title><scripttype="text/javascript"src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script>......
  • vis.js散点图
    代码案例<!doctypehtml><html><head><title>Timeline</title><scripttype="text/javascript"src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script>......
  • vis.js滚动和排序
    代码案例<!doctypehtml><html><head><title>Timeline</title><scripttype="text/javascript"src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script>......
  • vis.js右轴折线图
    代码案例<!doctypehtml><html><head><title>Timeline</title><scripttype="text/javascript"src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script>......
  • 30 天精通 RxJS (31):如何 Debug?
    Debug一直是RxJS的难题,原因是当我们使用RxJS后,代码就会变得高度抽象化;实际上抽象并不是什么坏事,抽象会让代码显得简洁、干净,但同时也带来了除错上的困难。在编写程序时,我们都会希望代码是简洁且可读的。但当我们用简洁的代码来处理复杂的问题,就表示我们的代码会变得......
  • 30 天精通 RxJS (30):Cold & Hot Observable
    HotObservable跟ColdObservable的差别,其实就是资料源(DataSource)在Observable内部建立还是外部建立。在RxJS中很常会看到ColdObservable跟HotObservable这两个名词,其实他们是在区分不同行为的Observable,所谓的ColdObservable就是指每次订阅都是独立的......
  • 30 天精通 RxJS (29):30 天感言
    30天悄悄的就过了,这30篇的文章基本上已经把RxJS一个核心三个重点(Observable+Observer+Subject+Scheduler)以及各个operators几乎也都有写到。最开始写这个系列的文章是希望能让RxJS的学习曲线降低,所以文章的前后顺序及内容都是特别规划过的,不知道我到底是不是......