mirror of https://gitee.com/cf-fz/WebCAD.git
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.
62 lines
1.5 KiB
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();
|
||
|
})
|
||
|
|
||
|
|