学习交流欢迎加群:789723098,博主会将一些demo整理共享
最近再做项目的时候,采用vue + three.js进行开发大型的3d场景项目,该项目中涉及到需要为建筑中的元素添加标签说明一些信息、名称,遂决定使用three.js的CSS2DRenderer和CSS2DObject进行标签的绘制,用的代码如下:
function makeCSS2DObject(position, radius, text) {
const div = document.createElement( 'div' );
div.className = 'scene-label';
div.style.marginTop = '-1em';
const span = document.createElement('span');
span.className = 'scene-label-text'
span.textContent = text;
div.appendChild(span);
const label = new CSS2DObject( div );
label.name = "mark-point"
label.position.set( 0, radius-16, 0);
return label;
}
function makeCSS2DPointObject(position, radius) {
let div = document.createElement( 'div' );
div.className = 'scene-point';
div.style.marginTop = '-2em';