【发布时间】:2020-07-10 19:28:32
【问题描述】:
这是 STL 查看器:
import * as THREE from "https://threejs.org/build/three.module.js";
import {OrbitControls} from "https://threejs.org/examples/jsm/controls/OrbitControls.js";
import {STLLoader} from "https://threejs.org/examples/jsm/loaders/STLLoader.js";
const scene = new THREE.Scene();
scene.background = new THREE.Color( 0xafdafc );
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer({canvas:test});
renderer.setSize(500, 500);
const loader = new STLLoader();
loader.load('./model.stl', function (geometry) {
const material = new THREE.MeshStandardMaterial({
color: 0xe6e6fa,
emissive: 0x2b2b2b,
specular: 0xe6e6e6,
metalness: 1,
roughness: 0.8,
});
const mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
});
const spotLight = new THREE.SpotLight(0xeeeece);
spotLight.position.set(1000, 1000, 1000);
scene.add(spotLight);
const controls = new OrbitControls(camera, renderer.domElement);
camera.position.set(0, 20, 100);
controls.update();
function render() {
requestAnimationFrame(render);
controls.update();
renderer.render(scene, camera);
}
render();
还有这个 HTML:
<form>
<input type="file" id="button" class="button">
<script src="js/index.js" type="module"></script>
<canvas class="test" id="test"></canvas>
</form>
如何连接<input> 和three.js?我想使用按钮将任何 STL 模型上传到画布。我尝试使用input.addEventListener,但它不起作用。 Mby 我做错了什么。
【问题讨论】:
-
“不工作”到底是什么意思?您收到错误消息吗?有什么事情发生吗?您是否尝试过调试,如果是,程序在哪里卡住/开始出现意外?
-
我想说的是我不知道该怎么做。我试图直观地进入语法,因为我没有找到任何示例,但它不起作用。错误涉及模块代码 Three.js,而不是我的代码。
标签: javascript html three.js