国产久_亚欧精品一区_久久亚洲美女_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>
  • 亚洲一区二区在| 不卡的av一区| 美女三级99| 一区二区三区欧美成人| 婷婷久久伊人| 九9re精品视频在线观看re6| 午夜在线精品| 亚洲天堂成人| 午夜精品亚洲一区二区三区嫩草| 男女精品视频| 国产一区二区高清| 欧美日韩综合网| 日韩亚洲视频在线| 欧美国产综合视频| 久久99欧美| 国产麻豆日韩| 成人资源av| 久久精品成人| 久久亚洲国产精品日日av夜夜| 97人人澡人人爽| 亚洲欧洲精品一区二区| 欧美精品亚洲| 欧美一区网站| 欧美99久久| 欧美婷婷在线| 国产综合欧美| 亚洲精品一级| 亚洲精品一级| 新67194成人永久网站| 9色国产精品| 香蕉成人久久| 999国内精品视频在线| 114国产精品久久免费观看| 亚洲欧美日韩精品一区二区| 免费看亚洲片| 国产精品一国产精品最新章节| 成人情视频高清免费观看电影| 国产91亚洲精品一区二区三区| 国产激情美女久久久久久吹潮| 精品国产电影| 天堂va久久久噜噜噜久久va| 日韩欧美亚洲在线| 中文字幕一区二区三区有限公司| 欧美日韩一区二区三区四区在线观看| 韩国一区二区三区美女美女秀| 中文日韩在线| 成人看片在线| 麻豆精品蜜桃一区二区三区| 五月天亚洲综合情| 国产中文一区二区| 乱码第一页成人| 国产二区不卡| 亚洲视频欧美在线| 中日韩视频在线观看| 国产区欧美区日韩区| 日韩免费电影一区二区| 欧美视频日韩| 麻豆av一区二区三区久久| 国产偷久久久精品专区| 亚洲一区三区视频在线观看| 日韩视频久久| 久久超碰亚洲| 欧美~级网站不卡| 久久成人亚洲| 色中色综合成人| 国产精品久久久一区二区| 精品乱码一区| 亚洲午夜精品国产| 国产精品亚洲综合| 亚洲视频在线二区| 99热99热| 亚洲免费网址| 视频三区二区一区| 一区二区国产精品| 久中文字幕一区| 亚洲日本无吗高清不卡| 久久综合婷婷综合| 99精品99久久久久久宅男| 精品乱色一区二区中文字幕| 国产一区高清视频| 看高清中日韩色视频| 亚洲午夜精品久久久久久浪潮| 国产一区二区精品在线| 亚洲成人在线| 欧美日韩综合精品| 美女精品在线| 亚洲图片在线观看| 久久免费看av| 久久久99国产精品免费| 欧美日韩国产不卡在线看| 国产精品国产亚洲精品看不卡15 | 任我爽在线视频精品一| 国产亚洲一区二区三区在线播放| 日本三级中国三级99人妇网站 | 亚洲不卡一卡2卡三卡4卡5卡精品| 99精品国产高清一区二区 | 亚洲美女黄色| 亚洲精美视频| 激情五月综合色婷婷一区二区 | 欧美综合二区| 狠狠色狠狠色综合人人| 日韩电影大全在线观看| 51国偷自产一区二区三区| 亚洲二区视频| 在线一区高清| 日韩中文不卡| 美女被啪啪一区二区| 丁香婷婷久久久综合精品国产| 99精品视频免费| 黑人巨大精品欧美一区二区小视频 | 动漫美女被爆操久久久| 香蕉久久国产| 亚洲高清不卡一区| 狠色狠色综合久久| 欧美国产综合视频| 亚洲自拍三区| 亚洲视频欧美在线| 亚洲 日韩 国产第一区| 欧美日韩在线精品一区二区三区| 国语精品中文字幕| 国产一区二区久久久| 五月天久久狠狠| 美乳视频一区二区| 久久综合久久久| 蜜桃久久精品乱码一区二区 | 国产精品婷婷| 国产欧美91| 亚洲一区三区视频在线观看| 99热精品在线| 噜噜噜91成人网| 成人动漫视频在线观看免费| 成人av播放| 久久av一区二区| 日本精品一区| 中文字幕精品—区二区日日骚| 亚洲无玛一区| 亚洲午夜精品久久久久久app| 一区二区在线不卡| 国产欧美日韩综合一区在线观看| 中文国产一区| 国产麻豆日韩| 新呦u视频一区二区| 欧美日韩三区四区| 国产视频在线观看一区 | 精品一区二区日本| 日韩av图片| 国产一区欧美| 久久精品99| 欧美日韩精品免费在线观看视频| 伊人久久青草| 夜夜嗨一区二区三区| 久久午夜精品| 日韩三级电影| 亚洲福利久久| 国产98在线|日韩| 先锋影音一区二区三区| 亚洲第一区色| 国产日韩精品推荐| 一区二区三区欧美在线| 激情久久久久| 玖玖玖国产精品| 日本不卡久久| 亚洲精品看片| 噜噜噜噜噜久久久久久91| 制服诱惑一区| 久久一区国产| 亚洲精品在线免费看| 国产美女一区| 日韩欧美视频一区二区| 国产视频不卡| 色综合影院在线观看| 中国成人亚色综合网站| 欧美三级网色| 国产精品亚洲不卡a| 中文字幕精品一区日韩| 免费永久网站黄欧美| 亚洲不卡1区| 97人人模人人爽视频一区二区| 在线视频一区观看| 成人影片在线播放| 在线播放一区| 欧美日韩精品免费观看| 久久国产66| 中文字幕欧美人与畜| 国产精品入口免费| 亚洲精品视频一区二区三区| 免费看成人av| 久久福利毛片| 亚洲国产欧美国产综合一区| 久久久久久亚洲精品不卡4k岛国 | 亚洲国产精品第一区二区三区| 狠狠干一区二区| 国产精品视频福利| 欧美色123| 亚洲精品一区二区三| 国产精品久久国产三级国电话系列| 国内揄拍国内精品久久| 色噜噜狠狠一区二区三区| 国产伦精品一区二区三区高清版| 国内精品久久久久国产盗摄免费观看完整版|