,可以通过以下步骤实现:
var geometry = new THREE.BufferGeometry();
var positions = new Float32Array([
// 顶点坐标数据
]);
geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
var worldPosition = new THREE.Vector3();
var projector = new THREE.Projector();
var screenPosition = new THREE.Vector3();
// 循环遍历每个顶点
for (var i = 0; i < positions.length; i += 3) {
// 获取顶点的世界坐标
worldPosition.fromArray(positions, i);
// 将世界坐标转换为屏幕坐标
screenPosition.copy(worldPosition);
screenPosition.project(camera); // camera为THREE.PerspectiveCamera对象
// 屏幕坐标范围是[-1, 1],需要将其转换为屏幕像素坐标
var x = (screenPosition.x + 1) * canvasWidth / 2;
var y = (1 - screenPosition.y) * canvasHeight / 2;
// 在控制台输出顶点的屏幕坐标
console.log('顶点', i / 3, '的屏幕坐标为:', x, y);
}
在上述代码中,positions
数组存储了顶点的坐标数据,camera
是THREE.PerspectiveCamera对象,canvasWidth
和canvasHeight
分别是画布的宽度和高度。
这样,你就可以获取到THREE.js Points对象中每个顶点的屏幕坐标了。
关于THREE.js、bufferGeometry、Points对象、世界坐标、屏幕坐标等相关概念和详细介绍,你可以参考腾讯云的产品文档:
请注意,以上链接仅为示例,实际应根据具体情况选择合适的腾讯云产品文档链接。
领取专属 10元无门槛券
手把手带您无忧上云