@three3d/tools
Version:
@three3d/tools 提供了 ThreeJS 常用的工具库
92 lines • 3.12 kB
TypeScript
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