阅读 92

vue.js+three.js+axios的问题求助

前端用的是vue,需要动态加载三维模型,数据要从后端请求。然后我写了以下代码

loadSTL() {
                let level = 1;
                axios.get('http://localhost:8081/wearLevel/level').then(function (response{
                    level = response.data
                })
                const THIS = this;
                const loader = new STLLoader();
                loader.load(
                    `${THIS.publicPath}models/${level}.STL`,
                    geometry => {
                        // 创建材质
                        const material = new THREE.MeshLambertMaterial({color: 0x7777ff})
                        this.mesh = new THREE.Mesh(geometry, material)
                        this.mesh.rotation.x = -0.5 * Math.PI
                        this.mesh.rotateY(Math.PI)
                        this.mesh.scale.set(0.6, 0.6, 0.6)
                        this.scene.add(this.mesh)
                    }
                )
 
            }复制代码

数据拿到了是这么个情况,level如愿拿到6这个等级,但是level并没有给到加载文件的loader.load()里面去。依然加载的是1.STL。image.png

然后根据别人建议,修改代码如下

loadSTL() {
                const THIS = this;
                const loader = new STLLoader();
                let level = 1;
                axios.get('http://localhost:8081/wearLevel/level').then(function (response{
                    level = response.data
                    loader.load(
                    `${THIS.publicPath}models/${level}.STL`,
                    geometry => {
                        // 创建材质
                        const material = new THREE.MeshLambertMaterial({color: 0x7777ff})
                        this.mesh = new THREE.Mesh(geometry, material)
                        this.mesh.rotation.x = -0.5 * Math.PI
                        this.mesh.rotateY(Math.PI)
                        this.mesh.scale.set(0.6, 0.6, 0.6)
                        this.scene.add(this.mesh)
                        }
                    )
                })
            }复制代码

发现能够载到正确的文件了,但是前端的模型显示不出来image.png报错显示‘mesh’未定义,图形渲染不出来了,不知道是不是我this用错了。image.png后面把mesh注释掉,报错 onload不是一个方法

image.png

image.png主要是我是个小白,也不知道three里面onload要写啥。到这里就无能为力了。还请大佬帮忙看看,到底哪里出了问题,应该怎么解决。不胜感激。 最后附上vue的结构。image.pngimage.png还请大家帮一下忙,看看是什么问题。


作者:用户3741481395332
链接:https://juejin.cn/post/7023947649103429640


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐