本文整理匯總了TypeScript中src/lib/point.PointCall函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript PointCall函數的具體用法?TypeScript PointCall怎麽用?TypeScript PointCall使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了PointCall函數的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: alongTheLine
export function alongTheLine(
start: PointLike,
end: PointLike = [Infinity, Infinity],
vector: PointLike = new Point(start, end),
large = false,
): Point {
const uVector = Point.from(vector).sign();
const sNode = large ? PointCall(start, 'mul', 0.05) : Point.from(start);
const eNode = large ? PointCall(end, 'mul', 0.05) : Point.from(end);
// 起點並不是導線或者起點等於終點,直接返回
if (!isLine(sNode) || sNode.isEqual(eNode)) {
return Point.from(start);
}
let node = sNode, next = node.add(uVector);
// 當前點沒有到達終點,還在導線所在直線內部,那就前進
while (isLine(next) && !node.isEqual(eNode)) {
if (hasConnect(node, next)) {
node = next;
next = node.add(uVector);
}
else {
break;
}
}
return large ? node.mul(20) : node;
}
示例2: deleteConnect
export function deleteConnect(point: PointLike, connect: PointLike, large = false): boolean {
const origin = large ? PointCall(point, 'mul', 0.05) : Point.from(point);
const check = large ? PointCall(connect, 'mul', 0.05) : Point.from(connect);
const key = point2key(origin);
const data = $map[key];
if (!data) {
throw new Error(`(map) space point: ${key}`);
}
return data.connect.delete((node) => node.isEqual(check));
}
示例3: hasConnect
export function hasConnect(point: PointLike, connect: PointLike, large = false): boolean {
const origin = large ? PointCall(point, 'mul', 0.05) : point;
const check = large ? PointCall(connect, 'mul', 0.05) : connect;
const key = point2key(origin);
const data = $map[key];
if (!data) {
throw new Error(`(map) space point: ${key}`);
}
return data.connect.some((item) => item.isEqual(check));
}
示例4: addConnect
export function addConnect(point: PointLike, connect: PointLike, large = false): void {
const origin = large ? PointCall(point, 'mul', 0.05) : Point.from(point);
const check = large ? PointCall(connect, 'mul', 0.05) : Point.from(connect);
const key = point2key(origin);
const data = $map[key];
if (!data) {
throw new Error(`(map) space point: ${key}`);
}
if (!hasConnect(origin, check)) {
data.connect.push(check);
}
}
示例5: isLine
export function isLine(point: PointLike, large = false) {
const node = large ? PointCall(point, 'mul', 0.05) : point;
const data = $map[point2key(node)];
return Boolean(data) && (data.type < 20);
}
示例6: deletePoint
export function deletePoint(point: PointLike, large = false) {
const node = large ? PointCall(point, 'mul', 0.05) : Point.from(point);
return Reflect.deleteProperty($map, point2key(node));
}
示例7: getPoint
export function getPoint(point: PointLike, large = false): NodeData | undefined {
const node = large ? PointCall(point, 'mul', 0.05) : Point.from(point);
const data = $map[point2key(node)];
return data ? dataClone(data) : undefined;
}
示例8: hasPoint
export function hasPoint(point: PointLike, large = false): boolean {
const node = large ? PointCall(point, 'mul', 0.05) : point;
return Boolean($map[point2key(node)]);
}