国产久_亚欧精品一区_久久亚洲美女_99精品在线观看_日韩成人三级_久久精品久久久久

顯示源代碼
飛機的尾部火焰
 開發文檔
            <!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link  rel='stylesheet' />
    <script src='http://ua.bigemap.com:30081/bmsdk/bigemap-gl.js/v1.1.0/bigemap-gl.js'></script>
    <script src='./templates/bmgl-header.js'></script>
</head>
<style>
    * {
        margin: 0;
        padding: 0;
    }

    #container {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 100%;
    }

    #toolbar {
        position: absolute;
    }
</style>

<body>
    <div id="container"></div>
    <div id="loadingOverlay">
        <h1>Loading...</h1>
    </div>
    <div id="toolbar"></div>
</body>
<script>

    bmgl.Config.HTTP_URL = 'http://ua.bigemap.com:30081/bmsdk/';
    // var viewer = new bmgl.Viewer('container', { mapId: 'bigemap.dc-tian-w-satellite' });

    var viewer = new bmgl.Viewer("container", {
        shouldAnimate: true,
        mapId: 'bigemap.dc-tian-w-satellite',
    });
    var planePosition = bmgl.Cartesian3.fromDegrees(
        -75.59777,
        40.03883,
        800.0
    );
    var particlesOffset = new bmgl.Cartesian3(
        -8.950115473940969,
        34.852766731753945,
        -30.235411095432937
    );
    var cameraLocation = bmgl.Cartesian3.add(
        planePosition,
        particlesOffset,
        new bmgl.Cartesian3()
    );
    var resetCamera = function () {
        viewer.camera.lookAt(
            cameraLocation,
            new bmgl.Cartesian3(-450, -300, 200)
        );
    };
    resetCamera();

    // Draw particle image to a canvas
    var particleCanvas;
    function getImage() {
        if (!bmgl.defined(particleCanvas)) {
            particleCanvas = document.createElement("canvas");
            particleCanvas.width = 20;
            particleCanvas.height = 20;
            var context2D = particleCanvas.getContext("2d");
            context2D.beginPath();
            context2D.arc(8, 8, 8, 0, bmgl.Math.TWO_PI, true);
            context2D.closePath();
            context2D.fillStyle = "rgb(255, 255, 255)";
            context2D.fill();
        }
        return particleCanvas;
    }

    // Add plane to scene
    var hpr = new bmgl.HeadingPitchRoll(
        0.0,
        bmgl.Math.PI_OVER_TWO,
        0.0
    );
    var orientation = bmgl.Transforms.headingPitchRollQuaternion(
        planePosition,
        hpr
    );
    var entity = viewer.entities.add({
        model: {
            uri: "/templates/glb/bmgl_Air.glb",
            scale: 3.5,
        },
        position: planePosition,
        orientation: orientation,
    });

    // creating particles model matrix
    var translationOffset = bmgl.Matrix4.fromTranslation(
        particlesOffset,
        new bmgl.Matrix4()
    );
    var translationOfPlane = bmgl.Matrix4.fromTranslation(
        planePosition,
        new bmgl.Matrix4()
    );
    var particlesModelMatrix = bmgl.Matrix4.multiplyTransformation(
        translationOfPlane,
        translationOffset,
        new bmgl.Matrix4()
    );

    // creating the particle systems
    var rocketOptions = {
        numberOfSystems: 50.0,
        iterationOffset: 0.1,
        cartographicStep: 0.000001,
        baseRadius: 0.0005,

        colorOptions: [
            {
                minimumRed: 1.0,
                green: 0.5,
                minimumBlue: 0.05,
                alpha: 1.0,
            },
            {
                red: 0.9,
                minimumGreen: 0.6,
                minimumBlue: 0.01,
                alpha: 1.0,
            },
            {
                red: 0.8,
                green: 0.05,
                minimumBlue: 0.09,
                alpha: 1.0,
            },
            {
                minimumRed: 1,
                minimumGreen: 0.05,
                blue: 0.09,
                alpha: 1.0,
            },
        ],
    };

    var cometOptions = {
        numberOfSystems: 100.0,
        iterationOffset: 0.003,
        cartographicStep: 0.0000001,
        baseRadius: 0.0005,

        colorOptions: [
            {
                red: 0.6,
                green: 0.6,
                blue: 0.6,
                alpha: 1.0,
            },
            {
                red: 0.6,
                green: 0.6,
                blue: 0.9,
                alpha: 0.9,
            },
            {
                red: 0.5,
                green: 0.5,
                blue: 0.7,
                alpha: 0.5,
            },
        ],
    };

    var scratchCartesian3 = new bmgl.Cartesian3();
    var scratchCartographic = new bmgl.Cartographic();
    var forceFunction = function (options, iteration) {
        return function (particle, dt) {
            dt = bmgl.Math.clamp(dt, 0.0, 0.05);

            scratchCartesian3 = bmgl.Cartesian3.normalize(
                particle.position,
                new bmgl.Cartesian3()
            );
            scratchCartesian3 = bmgl.Cartesian3.multiplyByScalar(
                scratchCartesian3,
                -40.0 * dt,
                scratchCartesian3
            );

            scratchCartesian3 = bmgl.Cartesian3.add(
                particle.position,
                scratchCartesian3,
                scratchCartesian3
            );

            scratchCartographic = bmgl.Cartographic.fromCartesian(
                scratchCartesian3,
                bmgl.Ellipsoid.WGS84,
                scratchCartographic
            );

            var angle =
                (bmgl.Math.PI * 2.0 * iteration) / options.numberOfSystems;
            iteration += options.iterationOffset;
            scratchCartographic.longitude +=
                Math.cos(angle) * options.cartographicStep * 30.0 * dt;
            scratchCartographic.latitude +=
                Math.sin(angle) * options.cartographicStep * 30.0 * dt;

            particle.position = bmgl.Cartographic.toCartesian(
                scratchCartographic
            );
        };
    };

    var matrix4Scratch = new bmgl.Matrix4();
    var scratchAngleForOffset = 0.0;
    var scratchOffset = new bmgl.Cartesian3();
    var imageSize = new bmgl.Cartesian2(15.0, 15.0);
    function createParticleSystems(options, systemsArray) {
        var length = options.numberOfSystems;
        for (var i = 0; i < length; ++i) {
            scratchAngleForOffset =
                (Math.PI * 2.0 * i) / options.numberOfSystems;
            scratchOffset.x +=
                options.baseRadius * Math.cos(scratchAngleForOffset);
            scratchOffset.y +=
                options.baseRadius * Math.sin(scratchAngleForOffset);

            var emitterModelMatrix = bmgl.Matrix4.fromTranslation(
                scratchOffset,
                matrix4Scratch
            );
            var color = bmgl.Color.fromRandom(
                options.colorOptions[i % options.colorOptions.length]
            );
            var force = forceFunction(options, i);

            var item = viewer.scene.primitives.add(
                new bmgl.ParticleSystem({
                    image: getImage(),
                    startColor: color,
                    endColor: color.withAlpha(0.0),
                    particleLife: 3.5,
                    speed: 0.00005,
                    imageSize: imageSize,
                    emissionRate: 30.0,
                    emitter: new bmgl.CircleEmitter(0.1),
                    lifetime: 0.1,
                    updateCallback: force,
                    modelMatrix: particlesModelMatrix,
                    emitterModelMatrix: emitterModelMatrix,
                })
            );
            systemsArray.push(item);
        }
    }

    var rocketSystems = [];
    var cometSystems = [];
    createParticleSystems(rocketOptions, rocketSystems);
    createParticleSystems(cometOptions, cometSystems);

    // toolbar elements
    function showAll(systemsArray, show) {
        var length = systemsArray.length;
        for (var i = 0; i < length; ++i) {
            systemsArray[i].show = show;
        }
    }

    var options = [
        {
            text: "Comet Tail",
            onselect: function () {
                showAll(rocketSystems, false);
                showAll(cometSystems, true);
                resetCamera();
            },
        },
        {
            text: "Rocket Thruster",
            onselect: function () {
                showAll(cometSystems, false);
                showAll(rocketSystems, true);
                resetCamera();
            },
        },
    ];
    Sandcastle.addToolbarMenu(options);

</script>

</html>                                                                                                                                                        
国产久_亚欧精品一区_久久亚洲美女_99精品在线观看_日韩成人三级_久久精品久久久久
<code id="kseui"><acronym id="kseui"></acronym></code>
  • <abbr id="kseui"><tbody id="kseui"></tbody></abbr>
  • <button id="kseui"></button>
  • 欧美日韩亚洲一区二区三区在线| 亚洲伦理精品| 欧洲精品久久| 好吊日精品视频| 亚洲欧洲日韩综合二区| 国产免费成人| 欧美日韩三区四区| 日韩视频在线播放| 国产精品久久久一区二区三区| 中文字幕在线亚洲三区| 精品国产一区二区三区免费| 国产精品国产三级国产专区53| 日韩视频在线一区二区三区| 91久久国产综合久久蜜月精品| 亚洲日本视频| 一区在线视频观看| 欧美日韩综合网| 国产精品日韩精品欧美精品| 含羞草久久爱69一区| 亚洲精品不卡| 日本一区不卡| 欧日韩一区二区三区| 欧美午夜一区二区福利视频| 久久亚裔精品欧美| 国产精品久久久久久久久婷婷| 精品国产一区二区三区麻豆免费观看完整版 | 亚洲精品在线视频观看| 97se亚洲综合在线| 国产精品久久久久9999高清| 精品麻豆av| 狠狠综合久久| 久久综合福利| 日本在线观看一区二区| 国产亚洲欧美一区二区| 日本成人三级电影网站| 国产精品日韩欧美一区二区三区| 日本一区视频在线观看| 久久人人超碰| 欧美日韩视频一区二区三区| 国产自产精品| 午夜亚洲激情| 精品无码久久久久国产| 你懂的视频在线一区二区| 亚洲狼人精品一区二区三区| 品久久久久久久久久96高清| 欧美亚洲免费在线| 中文字幕在线观看一区二区三区| 国新精品乱码一区二区三区18| 国产精品毛片一区二区三区| 中文字幕剧情在线观看一区| 九九热久久66| 成人在线资源网址| 国产伦精品一区二区三区照片91| 国产精品一区二区欧美黑人喷潮水| 国模精品一区二区三区| 亚洲美女啪啪| 女女同性女同一区二区三区91| 精品视频一区二区三区四区| 久久精品欧洲| 欧美日韩亚洲免费| 可以看av的网站久久看| 夜夜精品视频| 久久久久久九九九九| 美女尤物久久精品| 亚洲日本免费| 日本免费高清不卡| 在线观看一区二区三区三州| 国内精品久久国产| 老鸭窝91久久精品色噜噜导演| 亚洲欧美日韩精品综合在线观看| 国产另类自拍| 产国精品偷在线| 免费精品视频| 亚洲一区二区动漫| 国产一区二区三区久久久久久久久 | 久久婷婷丁香| 久久久久网址| 5g国产欧美日韩视频| 久久综合福利| 粉嫩av免费一区二区三区| 91在线精品观看| 国产精品区二区三区日本| 精品国产一区二区三区久久久久久| 国产伦一区二区三区色一情| 精品在线视频一区二区| 免费不卡亚洲欧美| 色综合影院在线观看| 久久精品国产清高在天天线 | 亚洲一区激情| 久久青青草综合| 国产精品果冻传媒潘| 欧美18视频| 一区二区三区四区国产| 狠狠爱综合网| 久久精品一二三区| 国产自产在线视频一区| 天天综合色天天综合色hd| 欧美成人高清| 国产精品资源| 精品蜜桃传媒| 在线观看成人一级片| 一区二区三区导航| 国产精品二区三区| 日韩成人av网站| 国产主播精品| 久久综合伊人| 亚洲欧美成人一区| 亚洲伊人观看| 日韩av在线电影观看| 精品动漫3d一区二区三区免费版 | 日本午夜精品电影| 亚洲国产电影| 成人免费看片网站| 亚洲综合第一| 亚洲免费网站| 日本精品视频一区| 国产亚洲精品v| 日本一区视频在线播放| 国产区欧美区日韩区| 欧美激情论坛| 99综合在线| 日本在线观看一区| 亚洲资源av| 在线视频精品一区| av日韩免费电影| 你懂的国产精品| 国产精品中出一区二区三区| 狠狠色噜噜狠狠狠狠色吗综合 | 亚洲一区日韩| 欧美日韩一区在线播放| 国产视频久久| 在线国产精品网| 精品欧美国产| 国产日韩欧美一区在线| 亚洲欧美久久234| 91精品国产高清久久久久久91裸体 | 国产精品av一区二区| 国产激情一区二区三区在线观看| 欧美黄在线观看| 欧美韩国一区| 国产欧美综合精品一区二区| 国产综合色产| 视频一区视频二区视频三区高| 91久色国产| 在线亚洲成人| 欧美日韩国产在线一区| 就去色蜜桃综合| 99国产在线视频| 亚洲一区二区三区四区五区午夜| 欧美一区视频| 日本不卡二区高清三区| 国产亚洲欧美一区二区三区| 国产偷久久久精品专区| 欧美成人久久| 日韩精品欧美在线| 精品无码久久久久国产| 亚欧成人精品| 国产亚洲福利| 在线视频亚洲| 亚洲精品1区| 欧美视频日韩| 欧美日韩一区二区三区四区在线观看| 图片区小说区区亚洲五月| 国产一区二区三区黄| 99精彩视频| 粉嫩av一区二区三区免费观看| 久久国产欧美精品| 西西人体一区二区| 亚洲欧美大片| 亚洲一区二区免费看| 国产婷婷精品| 美女黄网久久| yellow视频在线观看一区二区 | 一区二区三区|亚洲午夜| 鲁丝一区二区三区免费| 欧美久久久久久久| 欧美日韩综合网| 欧美自拍资源在线| 日韩亚洲一区在线播放| 日韩欧美亚洲日产国产| 日韩国产欧美一区| 日本一区二区三区视频在线观看| 欧美一区二区三区四区夜夜大片| 麻豆av一区二区三区| 日日骚一区二区网站| 中文字幕一区二区三区精彩视频| 亚洲乱码一区二区三区| 牛牛国产精品| 99精品国产99久久久久久福利| 亚洲一区日韩在线| 国产不卡一区二区在线观看| 国产精品swag| 欧美精品二区三区四区免费看视频 | 国产a一区二区| 欧美日本亚洲| 女生裸体视频一区二区三区| 一区二区亚洲| 国产91精品一区二区绿帽| 日韩高清三级| 亚洲特色特黄|