Web3D学习之-----全景图预览插件photo-sphere-viewer

  全景图展示的原理----大概知道一下~

  等距圆柱投影:又称方格投影。

  假想地球球面与一个圆柱面相切于赤道。并将球面上的所有经纬线投影到圆柱面上,经纬线被投影成两两互相垂直的直线,并且经距和纬距相等。

  这个圆柱的侧面展开就是一个全景图,可以算出:侧面的长为一个圆周,高为半个圆周。所以全景图的长宽比为 2 : 1。

 

  展示全景图:就是圆柱侧面投影的逆运算。把圆柱侧面贴到一个球上,我们在球中心看

1、photo-sphere-viewer插件官网是:Photo Sphere Viewer 

2、在html中使用:

复制代码
<head>
        <meta charset="utf-8">
        <title>全景图</title>
        <style>
            #viewer {
                width: 1000px;
                height: 500px;
            }
        </style>
        <link rel="stylesheet"
            href="https://cdn.jsdelivr.net/npm/photo-sphere-viewer@4/dist/photo-sphere-viewer.min.css" />
    </head>
    <body>
        <div id="viewer"></div>
    </body>
    <script src="https://cdn.jsdelivr.net/npm/three/build/three.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/uevent@2/browser.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/photo-sphere-viewer@4/dist/photo-sphere-viewer.min.js"></script>
    <script>
        var viewer = new PhotoSphereViewer.Viewer({
            container: document.querySelector('#viewer'),
            panorama: 'img/11.jpeg'
        });
    </script>
复制代码

3、在vue脚手架中使用

首先把插件下载到项目中:npm install photo-sphere-viewer

复制代码
<template>
    <div id="viewer"></div>
</template>

<script>
    import * as PhotoSphereViewer from 'photo-sphere-viewer'
    import 'photo-sphere-viewer/dist/photo-sphere-viewer.css'
    export default {
        data() {
            return {
                factoryLink: require('../../assets/img/11.jpeg'), //测试全景图
            }
        },
        mounted() {
            //全景图展示
            var viewer = new PhotoSphereViewer.Viewer({
                container: document.querySelector('#viewer'),
                panorama: this.factoryLink
            });
        },
        methods: {
        },
    }
</script>

<style scoped>
    #viewer {
        width: 1200px;
        height: 600px;
    }
</style>
复制代码

 

posted @   程序员冒冒  阅读(1863)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示