将线段(点对 [start, end])转为直线对象。
示例:[[0,0,0], [10,5,0]] -> { start: [0,0,0], end: [10,5,0] }
线段
直线
将每条线段(点对 [start, end])转为直线对象。
示例:三条线段 -> 三条直线,顺序相同
线段
每条线段一条直线
由起点和终点构建直线对象。
示例:起点 [0,0,0],终点 [10,5,0] -> { start: [0,0,0], end: [10,5,0] }
起点和终点
直线对象
由起点和终点构建线段,即直线的点对形式。
示例:起点 [0,0,0],终点 [10,5,0] -> [[0,0,0], [10,5,0]]
起点和终点
以 [start, end] 表示的线段
用直线将每个点连到下一个点,使点列表成为一串直线。
示例:[[0,0,0], [5,0,0], [5,5,0]] -> 两条直线,[0,0,0] 到 [5,0,0] 和 [5,0,0] 到 [5,5,0]
按顺序排列的点
每对相邻点一条直线
将每个起点与同一位置的终点配对,并用直线连接它们。
两点重合的一对不生成直线,被省略。 示例:起点 [[0,0,0], [5,0,0]] 和终点 [[0,5,0], [5,5,0]] -> 两条直线
起点和终点,按对应顺序排列
每对点一条直线,跳过长度为 0 的点对
找出直线上某一分数位置处的点:0 给出起点,1 给出终点,0.5 给出中点。
0 到 1 之外的分数延伸到端点之外。 示例:{ start: [0,0,0], end: [10,0,0] } 取 0.5 -> [5,0,0]
直线和沿线的比例
直线上的点
找出两条直线相交的点。
打开 checkSegmentsOnly 时,交点必须位于两条线段之内;关闭时直线无限延伸。平行的直线、互不相交而错过的直线以及彼此够不到的线段给出 undefined。容差决定多近算作相交。
示例:[0,0,0] 到 [10,0,0] 和 [5,-5,0] 到 [5,5,0] -> [5,0,0]
两条直线、是否限制在线段范围内,以及容差
交点,没有交点时为 undefined
对直线的两端应用一个变换矩阵,或按顺序应用一个矩阵列表。
示例:{ start: [0,0,0], end: [10,0,0] } 移动 [5,5,0] -> { start: [5,5,0], end: [15,5,0] }
直线和变换
端点经过变换的新直线
对每条直线应用不同的变换:第一个变换用于第一条直线,依此类推。
示例:三条直线配三个平移 -> 每条直线按自己的平移移动
直线和每条直线各自的变换
变换后的直线,顺序相同
两点之间的直线,以形如
{ start, end }的普通对象保存,以及同一事物的线段形式[start, end]。这里的方法构建直线,测量和变换它们,在两种形式之间转换,沿直线放置点,以及查找两条直线的交点。长度以模型单位表示。