three.js修改bug,增加video播放
This commit is contained in:
parent
eee0a6090f
commit
875259a945
Binary file not shown.
|
|
@ -41,7 +41,7 @@ renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true })
|
||||||
controls = new OrbitControls(camera, renderer.domElement)
|
controls = new OrbitControls(camera, renderer.domElement)
|
||||||
// controls.maxPolarAngle = 20*Math.PI
|
// controls.maxPolarAngle = 20*Math.PI
|
||||||
controls.maxDistance = 1000
|
controls.maxDistance = 1000
|
||||||
controls.minDistance = 400
|
controls.minDistance = 200
|
||||||
// controls.minAzimuthAngle = 100 * Math.PI;
|
// controls.minAzimuthAngle = 100 * Math.PI;
|
||||||
// controls.maxAzimuthAngle = 100 * Math.PI;
|
// controls.maxAzimuthAngle = 100 * Math.PI;
|
||||||
controls.minPolarAngle = 0;
|
controls.minPolarAngle = 0;
|
||||||
|
|
@ -126,6 +126,7 @@ function createRender() {
|
||||||
console.log(renderer);
|
console.log(renderer);
|
||||||
document.querySelector('#three3D').appendChild(renderer.domElement)
|
document.querySelector('#three3D').appendChild(renderer.domElement)
|
||||||
labelRenderer = new CSS3DRenderer();
|
labelRenderer = new CSS3DRenderer();
|
||||||
|
console.log(labelRenderer,'渲染');
|
||||||
labelRenderer.setSize(window.innerWidth, window.innerHeight);
|
labelRenderer.setSize(window.innerWidth, window.innerHeight);
|
||||||
labelRenderer.domElement.style.position = "absolute";
|
labelRenderer.domElement.style.position = "absolute";
|
||||||
labelRenderer.domElement.style.top = 0;
|
labelRenderer.domElement.style.top = 0;
|
||||||
|
|
@ -133,6 +134,7 @@ function createRender() {
|
||||||
labelRenderer.domElement.style.pointerEvents = "none";
|
labelRenderer.domElement.style.pointerEvents = "none";
|
||||||
labelRenderer.domElement.className = "allLabel";
|
labelRenderer.domElement.className = "allLabel";
|
||||||
document.querySelector('#three3D').appendChild(labelRenderer.domElement);
|
document.querySelector('#three3D').appendChild(labelRenderer.domElement);
|
||||||
|
console.log(document.querySelector('#three3D'));
|
||||||
initIcon()
|
initIcon()
|
||||||
}
|
}
|
||||||
async function initIcon() {
|
async function initIcon() {
|
||||||
|
|
@ -162,20 +164,22 @@ async function initIcon() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
pointList.forEach((item, index) => {
|
pointList.forEach((item, index) => {
|
||||||
console.log(item, 'item');
|
|
||||||
let initIconAble
|
let initIconAble
|
||||||
if (item.name == '警报') {
|
if (item.name == '警报') {
|
||||||
initIconAble = createLableObj(item.name, item.point, 'area-alert.png');
|
initIconAble = createLableObj(item.name, item.point, 'area-alert.png');
|
||||||
} else {
|
} else {
|
||||||
initIconAble = createLableObj(item.name, item.point, `store.png`);
|
initIconAble = createLableObj(item.name, item.point, `store.png`);
|
||||||
}
|
}
|
||||||
|
console.log(initIconAble,'xxx');
|
||||||
scene.add(initIconAble);
|
scene.add(initIconAble);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 创建标签的方法
|
// 创建标签的方法
|
||||||
function createLableObj(text, vector, url) {
|
function createLableObj(text, vector, url) {
|
||||||
let laberDiv = document.createElement("div"); //创建div容器
|
let laberDiv = document.createElement("div");
|
||||||
|
//创建div容器
|
||||||
laberDiv.className = "laber_name";
|
laberDiv.className = "laber_name";
|
||||||
// laberDiv.textContent = text;
|
// laberDiv.textContent = text;
|
||||||
laberDiv.innerHTML = `
|
laberDiv.innerHTML = `
|
||||||
|
|
@ -185,15 +189,18 @@ function createLableObj(text, vector, url) {
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
console.log(laberDiv,'div容器');
|
||||||
let pointLabel = new CSS3DObject(laberDiv);
|
let pointLabel = new CSS3DObject(laberDiv);
|
||||||
pointLabel.scale.set(0.1, 0.1, 0.1);
|
pointLabel.scale.set(0.1, 0.1, 0.1);
|
||||||
pointLabel.position.set(vector.x, vector.y + 15, vector.z);
|
pointLabel.position.set(vector.x, vector.y + 15, vector.z);
|
||||||
|
console.log(pointLabel,'3dtuduix');
|
||||||
return pointLabel;
|
return pointLabel;
|
||||||
}
|
}
|
||||||
function animate() {
|
function animate() {
|
||||||
controls.update()
|
controls.update()
|
||||||
requestAnimationFrame(animate);
|
requestAnimationFrame(animate);
|
||||||
renderer.render(scene, camera);
|
renderer.render(scene, camera);
|
||||||
|
labelRenderer.render(scene,camera)
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,7 @@
|
||||||
v-for="(item, index) in areaAlarm" :key="index">
|
v-for="(item, index) in areaAlarm" :key="index">
|
||||||
<div class="video">
|
<div class="video">
|
||||||
<div class="video-item">
|
<div class="video-item">
|
||||||
|
<video id="video" controls src="../assets/video/11.mp4"></video>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="message">
|
<div class="message">
|
||||||
|
|
@ -332,7 +332,7 @@ export default {
|
||||||
let alarmItemHeight = ref(0)
|
let alarmItemHeight = ref(0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
let dom = document.querySelector('.alarmPlate')
|
let dom = document.querySelector('.alarmPlate')
|
||||||
|
|
||||||
|
|
@ -344,12 +344,21 @@ export default {
|
||||||
alarmItemHeight.value = dom.clientHeight * 0.94 / 3
|
alarmItemHeight.value = dom.clientHeight * 0.94 / 3
|
||||||
console.log(alarmItemHeight.value);
|
console.log(alarmItemHeight.value);
|
||||||
})
|
})
|
||||||
|
|
||||||
|
//video继承父元素宽高
|
||||||
|
|
||||||
|
|
||||||
|
nextTick(() => {
|
||||||
|
let video = document.querySelector('#video')
|
||||||
|
console.log(video.parentNode.offsetWidth, video.parentNode.parentNode.offsetHeight, 'xxx');
|
||||||
|
video.style.height = video.parentElement.clientHeight + 'px'
|
||||||
|
video.style.width = video.parentElement.clientWidth + 'px'
|
||||||
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const methods = {
|
const methods = {
|
||||||
|
|
||||||
getColor(state) {
|
getColor(state) {
|
||||||
|
|
||||||
if (state == '正常') {
|
if (state == '正常') {
|
||||||
|
|
@ -841,7 +850,7 @@ export default {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: .2rem;
|
// padding: .2rem;
|
||||||
// background-color: #03bcc2;
|
// background-color: #03bcc2;
|
||||||
background-image: url('../assets/images/area-bg.png');
|
background-image: url('../assets/images/area-bg.png');
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue