旋转飞机模型

yfy^2
许宏杰 19 hours ago
parent 2ed94a81f7
commit d9bc6de839

@ -1,227 +1,243 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head>
<head> <meta charset="utf-8" />
<meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="renderer" content="webkit" />
<meta name="renderer" content="webkit"> <meta
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> name="viewport"
<link rel="icon" href="/favicon.ico"> content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
<!--引入cesium基础lib--> />
<link href="https://registry.npmmirror.com/mars3d-cesium/latest/files/Build/Cesium/Widgets/widgets.css" rel="stylesheet" type="text/css" /> <link rel="icon" href="/favicon.ico" />
<script src="https://registry.npmmirror.com/mars3d-cesium/latest/files/Build/Cesium/Cesium.js" type="text/javascript"></script> <!--引入cesium基础lib-->
<!-- <link href="http://www.jichuanglanhai.com/demo/map3d/Cesium/Widgets/widgets.css" rel="stylesheet" type="text/css" /> <link
href="https://registry.npmmirror.com/mars3d-cesium/latest/files/Build/Cesium/Widgets/widgets.css"
rel="stylesheet"
type="text/css"
/>
<script
src="https://registry.npmmirror.com/mars3d-cesium/latest/files/Build/Cesium/Cesium.js"
type="text/javascript"
></script>
<!-- <link href="http://www.jichuanglanhai.com/demo/map3d/Cesium/Widgets/widgets.css" rel="stylesheet" type="text/css" />
<script src="http://www.jichuanglanhai.com/demo/map3d/Cesium/Cesium.js" type="text/javascript"></script> --> <script src="http://www.jichuanglanhai.com/demo/map3d/Cesium/Cesium.js" type="text/javascript"></script> -->
<!--引入mars3d库lib--> <!--引入mars3d库lib-->
<link href="https://registry.npmmirror.com/mars3d/latest/files/mars3d.css" rel="stylesheet" type="text/css" /> <link
<script src="https://registry.npmmirror.com/mars3d/latest/files/mars3d.js" type="text/javascript"></script> href="https://registry.npmmirror.com/mars3d/latest/files/mars3d.css"
rel="stylesheet"
<!-- <script src="http://www.jichuanglanhai.com/demo/map3d/turf.min.js" type="text/javascript"></script> type="text/css"
/>
<script
src="https://registry.npmmirror.com/mars3d/latest/files/mars3d.js"
type="text/javascript"
></script>
<!-- <script src="http://www.jichuanglanhai.com/demo/map3d/turf.min.js" type="text/javascript"></script>
<link href="http://www.jichuanglanhai.com/demo/map3d/mars3d/mars3d.css" rel="stylesheet" type="text/css" /> <link href="http://www.jichuanglanhai.com/demo/map3d/mars3d/mars3d.css" rel="stylesheet" type="text/css" />
<script src="http://www.jichuanglanhai.com/demo/map3d/mars3d/mars3d.js" type="text/javascript"></script> --> <script src="http://www.jichuanglanhai.com/demo/map3d/mars3d/mars3d.js" type="text/javascript"></script> -->
<title>若依管理系统</title> <title>若依管理系统</title>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]--> <!--[if lt IE 11
<style> ]><script>
html, window.location.href = "/html/ie.html";
body, </script><!
#app { [endif]-->
height: 100%; <style>
margin: 0px; html,
padding: 0px; body,
} #app {
height: 100%;
.chromeframe { margin: 0px;
margin: 0.2em 0; padding: 0px;
background: #ccc; }
color: #000;
padding: 0.2em 0; .chromeframe {
} margin: 0.2em 0;
background: #ccc;
#loader-wrapper { color: #000;
position: fixed; padding: 0.2em 0;
top: 0; }
left: 0;
width: 100%; #loader-wrapper {
height: 100%; position: fixed;
z-index: 999999; top: 0;
} left: 0;
width: 100%;
#loader { height: 100%;
display: block; z-index: 999999;
position: relative; }
left: 50%;
top: 50%; #loader {
width: 150px; display: block;
height: 150px; position: relative;
margin: -75px 0 0 -75px; left: 50%;
border-radius: 50%; top: 50%;
border: 3px solid transparent; width: 150px;
border-top-color: #FFF; height: 150px;
-webkit-animation: spin 2s linear infinite; margin: -75px 0 0 -75px;
-ms-animation: spin 2s linear infinite; border-radius: 50%;
-moz-animation: spin 2s linear infinite; border: 3px solid transparent;
-o-animation: spin 2s linear infinite; border-top-color: #fff;
animation: spin 2s linear infinite; -webkit-animation: spin 2s linear infinite;
z-index: 1001; -ms-animation: spin 2s linear infinite;
} -moz-animation: spin 2s linear infinite;
-o-animation: spin 2s linear infinite;
#loader:before { animation: spin 2s linear infinite;
content: ""; z-index: 1001;
position: absolute; }
top: 5px;
left: 5px; #loader:before {
right: 5px; content: "";
bottom: 5px; position: absolute;
border-radius: 50%; top: 5px;
border: 3px solid transparent; left: 5px;
border-top-color: #FFF; right: 5px;
-webkit-animation: spin 3s linear infinite; bottom: 5px;
-moz-animation: spin 3s linear infinite; border-radius: 50%;
-o-animation: spin 3s linear infinite; border: 3px solid transparent;
-ms-animation: spin 3s linear infinite; border-top-color: #fff;
animation: spin 3s linear infinite; -webkit-animation: spin 3s linear infinite;
} -moz-animation: spin 3s linear infinite;
-o-animation: spin 3s linear infinite;
#loader:after { -ms-animation: spin 3s linear infinite;
content: ""; animation: spin 3s linear infinite;
position: absolute; }
top: 15px;
left: 15px; #loader:after {
right: 15px; content: "";
bottom: 15px; position: absolute;
border-radius: 50%; top: 15px;
border: 3px solid transparent; left: 15px;
border-top-color: #FFF; right: 15px;
-moz-animation: spin 1.5s linear infinite; bottom: 15px;
-o-animation: spin 1.5s linear infinite; border-radius: 50%;
-ms-animation: spin 1.5s linear infinite; border: 3px solid transparent;
-webkit-animation: spin 1.5s linear infinite; border-top-color: #fff;
animation: spin 1.5s linear infinite; -moz-animation: spin 1.5s linear infinite;
} -o-animation: spin 1.5s linear infinite;
-ms-animation: spin 1.5s linear infinite;
-webkit-animation: spin 1.5s linear infinite;
@-webkit-keyframes spin { animation: spin 1.5s linear infinite;
0% { }
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg); @-webkit-keyframes spin {
transform: rotate(0deg); 0% {
} -webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
100% { transform: rotate(0deg);
-webkit-transform: rotate(360deg); }
-ms-transform: rotate(360deg);
transform: rotate(360deg); 100% {
} -webkit-transform: rotate(360deg);
} -ms-transform: rotate(360deg);
transform: rotate(360deg);
@keyframes spin { }
0% { }
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
#loader-wrapper .loader-section {
position: fixed;
top: 0;
width: 51%;
height: 100%;
background: #7171C6;
z-index: 1000;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
#loader-wrapper .loader-section.section-left {
left: 0;
}
#loader-wrapper .loader-section.section-right {
right: 0;
}
.loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader {
opacity: 0;
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.loaded #loader-wrapper {
visibility: hidden;
-webkit-transform: translateY(-100%);
-ms-transform: translateY(-100%);
transform: translateY(-100%);
-webkit-transition: all 0.3s 1s ease-out;
transition: all 0.3s 1s ease-out;
}
.no-js #loader-wrapper {
display: none;
}
.no-js h1 {
color: #222222;
}
#loader-wrapper .load_title {
font-family: 'Open Sans';
color: #FFF;
font-size: 19px;
width: 100%;
text-align: center;
z-index: 9999999999999;
position: absolute;
top: 60%;
opacity: 1;
line-height: 30px;
}
#loader-wrapper .load_title span {
font-weight: normal;
font-style: italic;
font-size: 13px;
color: #FFF;
opacity: 0.5;
}
</style>
</head>
<body>
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div>
</div>
</div>
<script type="module" src="/src/main.js"></script>
</body>
</html> @keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
#loader-wrapper .loader-section {
position: fixed;
top: 0;
width: 51%;
height: 100%;
background: #7171c6;
z-index: 1000;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
#loader-wrapper .loader-section.section-left {
left: 0;
}
#loader-wrapper .loader-section.section-right {
right: 0;
}
.loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.loaded #loader {
opacity: 0;
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.loaded #loader-wrapper {
visibility: hidden;
-webkit-transform: translateY(-100%);
-ms-transform: translateY(-100%);
transform: translateY(-100%);
-webkit-transition: all 0.3s 1s ease-out;
transition: all 0.3s 1s ease-out;
}
.no-js #loader-wrapper {
display: none;
}
.no-js h1 {
color: #222222;
}
#loader-wrapper .load_title {
font-family: "Open Sans";
color: #fff;
font-size: 19px;
width: 100%;
text-align: center;
z-index: 9999999999999;
position: absolute;
top: 60%;
opacity: 1;
line-height: 30px;
}
#loader-wrapper .load_title span {
font-weight: normal;
font-style: italic;
font-size: 13px;
color: #fff;
opacity: 0.5;
}
</style>
</head>
<body>
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div>
</div>
</div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

@ -33,6 +33,7 @@
"pinia": "2.1.7", "pinia": "2.1.7",
"splitpanes": "3.1.5", "splitpanes": "3.1.5",
"vue": "3.4.31", "vue": "3.4.31",
"vue-3d-model": "^2.0.0-alpha.4",
"vue-cropper": "1.1.1", "vue-cropper": "1.1.1",
"vue-router": "4.4.0", "vue-router": "4.4.0",
"vuedraggable": "4.1.0" "vuedraggable": "4.1.0"

@ -1,27 +1,68 @@
<template> <template>
<div class="panel-box panel-left"> <div class="panel-box panel-left">
<view-title height="50%" title="无人机信息"> <view-title height="50%" title="无人机信息">
<!-- <model-collada <model-collada
:backgroundAlpha="0" @load="onLoad"
:rotation="{ src="src/assets/images/uav-model.dae"
x: - Math.PI / 2, :rotation="rotation"
y: 0, :position="position"
z: 0, :height="100"
}" :lights="lights"
src="../../../assets/images/uav-model.dae" :backgroundAlpha="0"
/> --> :controls-options="{
enableRotate: true, //
enableZoom: false, //
enablePan: false //
}"
/>
</view-title> </view-title>
<view-title height="50%" title="无人机实时状态"></view-title> <view-title height="50%" title="无人机实时状态"></view-title>
</div> </div>
</template> </template>
<script setup> <script setup>
import {ViewTitle} from "@/views/components/map" import { ViewTitle } from "@/views/components/map";
// import { ModelCollada } from 'vue-3d-model'; import { ModelCollada } from "vue-3d-model";
const onLoad = () => {
rotate();
};
function rotate() {
requestAnimationFrame(rotate);
rotation.y += 0.01;
}
const rotation = reactive({
x: 0.5,
y: 0,
z: 0,
});
const position = {
x: 0,
y: 0,
z: 0,
};
const lights = [
{
type: "HemisphereLight",
position: { x: 0, y: 15, z: 50},
skyColor: 0xffd700,
groundColor: 0xffd700,
intensity: 0.2,
},
{
type: "DirectionalLight",
position: { x: 0.2, y: 20, z: 1},
color: 0xffffff,
intensity: 0.8,
},
];
</script> </script>
<style scoped> <style scoped>
.panel-left{ .panel-left {
} }
</style> </style>

Loading…
Cancel
Save