javascript - 鼠标 - 平面上的 x 和 y 但为什么呢?
问题描述
我会有一个像threejs.org/examples/#webgl_interactive_voxelpainter 这样的网格,然后当我点击一个点时,我可以做我想做的每一件事。我只是无法完成它:/
我的变量
var onmouseclick;
var planex = 16000;
var planey = 16000;
var rasterx = 100;
var rastery = 100;
var waterGeometry;
var planeMaterials;
var watermaterial;
var waterplane;
var mouse;
然后是我为mapp建造飞机的功能
buildmapp = function () {
//waterunderground
waterGeometry = new THREE.PlaneGeometry(planex, planey, rasterx, rastery);
planeMaterials = [
new THREE.MeshLambertMaterial({
map: new THREE.TextureLoader().load('ocean.jpg'),
side: THREE.DoubleSide,
wireframe: false
}),
new THREE.MeshLambertMaterial({
map: new THREE.TextureLoader().load('ocean.jpg'),
side: THREE.DoubleSide,
wireframe: false
}),
new THREE.MeshLambertMaterial({
map: new THREE.TextureLoader().load('ocean.jpg'),
side: THREE.DoubleSide,
wireframe: false
}),
new THREE.MeshLambertMaterial({
map: new THREE.TextureLoader().load('ocean.jpg'),
side: THREE.DoubleSide,
wireframe: false
}),
];
watermaterial = new THREE.MeshFaceMaterial(planeMaterials);
waterplane = new THREE.Mesh(waterGeometry, watermaterial);
waterplane.position.set(0, 0, 0);
waterplane.rotation.set(0, 0, 0);
scene.add(waterplane);
}
然后是我的鼠标点击功能。这里的坐标应该来自鼠标 - plane.x 或 y。只有我找不到有关如何操作的任何指导。:/
//
onmouseclick = function () {
mouse = new THREE.Vector3();
window.document.addEventListener('click', function (e) {
mouse.x = ((e.clientX / window.innerWidth) * 2 - 1);
mouse.y = (e.clientY / window.innerHeight) * 2 - 1;
console.log(mouse.x, mouse.y, 'clicklockation', );
// mouse - x and y from the plane but why ?
});
}
//gameprocess
update = function () {};
render = function () {
renderer.clear();
renderer.render(scene, camera);
};
GameLoop = function () {
render();
update();
steuerung_tastatur_camera();
onmouseclick();
requestAnimationFrame(GameLoop);
};
//first build all object
buildobj();
有人可以帮助我或给我一个指导或方法来了解我需要查看的内容吗?
解决方案
推荐阅读
- r - 大 n (>100) 的掷骰子数学
- python - 打开另一个窗口时按钮功能奇怪地暂停
- ios - 导航栏背景颜色
- r-markdown - 保持 pdf 文档中的块输出格式与控制台输出格式相同 - Rmarkdown
- flutter - 使用流进行优化
- git - 在分支中有同名文件夹时合并子模块
- bash - 在子shell中定义目录和子目录,简化
- reactjs - 错误:应用程序(...):渲染没有返回任何内容。这通常意味着缺少 return 语句。或者,不渲染任何内容,返回 null
- crafter-cms - CrafterCMS WebDAV 配置交付
- deep-learning - 在 colab 笔记本中设置 roBERTa 模型时出错