Three.js 问题求助大佬

2022-12-03 21:57:30 +08:00
 Like0602

绘制多边形的 shape 只能传入二维坐标,我现在是二维平面但是是三维坐标也想做类似绘制多边形的效果,有什么方法吗?关键是三维坐标点与点之间的 xyz 都是不一样的

737 次点击
所在节点    前端开发
5 条回复
youtubbbbb
2022-12-04 06:50:55 +08:00
明确一下,你是希望在三维空间里绘制二维多边形还是多面体?
Like0602
2022-12-04 18:53:54 +08:00
类似二维多边形的
Like0602
2022-12-04 19:10:32 +08:00
我在屏幕上点击得到一些点然后将这点依次连成线,然后想就这些点和线绘制多边形,大概就是在二维平面但实际上是三维坐标
sakae010
2022-12-09 18:26:19 +08:00
二维坐标转三维就行了


function screenPositionToWorld(pos, element, camera) {
const vector = new THREE.Vector3(
(pos.x / element.clientWidth) * 2 - 1,
-(pos.y / element.clientHeight) * 2 + 1,
0
);
camera.updateWorldMatrix();
vector.unproject(camera);
return vector;
}
sakae010
2022-12-09 18:27:24 +08:00
我这边用的 client 的宽和高,你那边可能要修改能你窗口的宽高

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/899886

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX