UNPKG

@three3d/tools

Version:

@three3d/tools 提供了 ThreeJS 常用的工具库

92 lines 3.12 kB
import { VectorInstance } from "../vector"; import { GeometricRelationship, InfinityGeometricRelationship } from "./type"; /** * 判别线和圆的位置关系 * @remarks * 有以下几种情况: * - Tangency:相切; * - Dissociation:相离: * - Intersect;相交; * @param line * @param circle * @returns */ export declare function discriminateRelationshipOfLine_Circle<Vec extends VectorInstance>(line: [Vec, Vec], circle: { center: Vec; radius: number; }): GeometricRelationship.Dissociation | GeometricRelationship.Intersect | GeometricRelationship.Tangency; /** * 计算线和圆的交点比例 * @remarks * 比例指定的是: * - 线的开始点为 0,结束点为 1; * @param line * @param circle * @returns */ export declare function computeIntersectionFactorOfLine_Circle<Vec extends VectorInstance>(line: [Vec, Vec], circle: { center: Vec; radius: number; }): number[]; /** * 计算线和圆的交点 * @param line * @param circle * @returns */ export declare function computeIntersectionOfLine_Circle<Vec extends VectorInstance>(line: [Vec, Vec], circle: { center: Vec; radius: number; }): (import("three").Vector3 | import("three").Vector2 | import("three").Vector4)[]; /** * 判别线段和圆的位置关系 * 有以下几种情况: * - Contain:包含;线段包含在圆里;包括线段的两个端点在圆上的情况; * - Tangency:相切;线段与圆相切,且切点在经线段内; * - Dissociation:相离; * - Intersect;相交;射线和线段相交; * @param ray - 射线,第一个点射线的起点,第二个点为射线所经过的任意一点(注意,不是射线的方向) * @param line * @param circle * @returns */ export declare function discriminateRelationshipOfLineSegment_Circle<Vec extends VectorInstance>(line: [Vec, Vec], circle: { center: Vec; radius: number; }): GeometricRelationship; /** * 计算线段和圆的交点 * @param line * @param circle * @returns */ export declare function computeIntersectionOfLineSegment_Circle<Vec extends VectorInstance>(line: [Vec, Vec], circle: { center: Vec; radius: number; }): Vec[]; /** * 判别射线和圆的位置关系 * @remarks * 有以下几种情况: * - Tangency:相切; * - Dissociation:相离: * - Intersect;相交; * @param ray - 射线,第一个点射线的起点,第二个点为射线所经过的任意一点(注意,不是射线的方向) * @param circle * @returns */ export declare function discriminateRelationshipOfRay_Circle<Vec extends VectorInstance>(ray: [Vec, Vec], circle: { center: Vec; radius: number; }): InfinityGeometricRelationship; /** * 计算射线和圆的交点 * @param ray - 射线,第一个点射线的起点,第二个点为射线所经过的任意一点(注意,不是射线的方向) * @param circle * @returns */ export declare function computeIntersectionOfRay_Circle<Vec extends VectorInstance>(ray: [Vec, Vec], circle: { center: Vec; radius: number; }): Vec[]; //# sourceMappingURL=line-circle.d.ts.map