You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
WebCAD/__test__/Geometry/arc.test.ts

62 lines
1.5 KiB

7 years ago
import { Arc } from '../../src/DatabaseServices/Arc';
import { Vector3, Vector2 } from 'three';
import { app } from '../../src/ApplicationServices/Application';
import { Command } from '../../src/Editor/CommandMachine';
import { PromptStatus } from '../../src/Editor/PromptResult';
import { RenderType } from '../../src/GraphicsSystem/Enum';
test("三点共线", () =>
{
let pt1 = new Vector3(0, 0, 0);
let pt2 = new Vector3(0, 1, 0);
let pt3 = new Vector3(0, 2, 0);
let arc = new Arc();
arc.FromThreePoint(pt1, pt2, pt3);
console.log(arc.Center);
console.log(arc.StartAngle);
console.log(arc.EndAngle);
console.log(arc.Radius);
expect(arc.Center.toArray()).toMatchObject([0, 0, 0]);
})
test("三点圆心", () =>
{
let arc = new Arc();
arc.FromThreePoint(
new Vector3(0, 0, 0),
new Vector3(5, 5, 0),
new Vector3(10, 0, 0)
)
console.log(arc.StartAngle);
console.log(arc.EndAngle);
expect(arc.Center.toArray()).toMatchObject([5, 0, 0]);
expect(arc.StartAngle).toMatchSnapshot();
expect(arc.EndAngle).toMatchSnapshot();
})
test("三点同一位置", () =>
{
let arc = new Arc();
arc.FromThreePoint(
new Vector3(5, 5, 0),
new Vector3(5, 5, 0),
new Vector3(5, 5, 0)
)
console.log(arc.StartAngle);
console.log(arc.EndAngle);
expect(arc.Center.toArray()).toMatchObject([0, 0, 0]);
expect(arc.StartAngle).toMatchSnapshot();
expect(arc.EndAngle).toMatchSnapshot();
})