全局
MeshBVH
SerializedBVH
MeshBVHVisualizer
ExtendedTriangle
OrientedBox
Raycaster
StaticGeometryGenerator
GenerateMeshBVHWorker

ExtendedTriangle.distanceToTriangle

该函数用于计算三角形与三角形之间的最短距离。

语法

distanceToTriangle(triangle: ExtendedTriangle, targetPoint: THREE.Vector3, sourcePoint: THREE.Vector3, options?: {
  skipBackfaces?: boolean,
  usePreciseDistance?: boolean
}): number;

参数

  • triangle - ExtendedTriangle 类型,表示待计算距离的目标三角形。
  • targetPoint - THREE.Vector3 类型,表示目标三角形上的一个点。
  • sourcePoint - THREE.Vector3 类型,表示源三角形上的一个点。
  • options.skipBackfaces - 布尔类型,可选参数,表示是否跳过背面三角形的距离计算,默认值为 false
  • options.usePreciseDistance - 布尔类型,可选参数,表示是否使用精确距离计算,默认值为 false

返回值

返回源三角形与目标三角形之间的最短距离。

描述

该函数用于计算两个三角形之间的最短距离。它通过计算源三角形上的一个点到目标三角形的距离来实现。可以通过设置 options.skipBackfaces 来跳过背面三角形的距离计算,从而优化性能。还可以通过设置 options.usePreciseDistance 来使用更精确的距离计算,但相应的计算开销较大。

示例

import { ExtendedTriangle } from 'three-bvh-mesh';

const triangle1 = new ExtendedTriangle(
  new THREE.Vector3(0, 0, 0),
  new THREE.Vector3(1, 0, 0),
  new THREE.Vector3(0, 1, 0),
);
const triangle2 = new ExtendedTriangle(
  new THREE.Vector3(0, 0, 1),
  new THREE.Vector3(1, 0, 1),
  new THREE.Vector3(0, 1, 1),
);

const distance = triangle1.distanceToTriangle(triangle2, new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, 0, 1));
console.log(distance); // 输出 1

异常

如果参数 triangle 的类型不为 ExtendedTriangle,则会抛出类型错误。