diff --git a/examples/test.gs b/examples/test.gs index 291c48a..49f1677 100644 --- a/examples/test.gs +++ b/examples/test.gs @@ -1,9 +1,10 @@ -point(0.2378, -34.389) -> A -point(2.5, 0) -> B -[point(-1, 3) -> C] +point(200, 300) -> A +point(400, 300) -> B +[point(300, 128) -> C] line(A, B) -> AB line(B, C) line(C, A) -circle(A, len(AB)) \ No newline at end of file +circle(A, len(AB)) +circle(B, len(AB)) \ No newline at end of file diff --git a/src/geometry.ts b/src/geometry.ts index 08a7dfc..584b633 100644 --- a/src/geometry.ts +++ b/src/geometry.ts @@ -41,14 +41,9 @@ class Geometry extends HTMLElement return; } - for(let instr of parser.instructions) - { - console.log(instr.eval()); - } - this.attachShadow({mode: "open"}); let canvas = document.createElement("canvas"); - canvas.width = 500; + canvas.width = 700; canvas.height = 500; let context = canvas.getContext("2d"); @@ -59,18 +54,27 @@ class Geometry extends HTMLElement this.shapes = [] - this.shapes.push(new Circle(this.context, new Vector2D(150, 150), 100)) - this.shapes.push(new Line(this.context, new Vector2D(), new Vector2D(300, 300))) + for(let instruction of parser.instructions) + { + let value = instruction.eval(); + switch(instruction.getType()) + { + case InstructionType.Line: + { + console.log("New line " + value) + this.shapes.push(new Line(this.context, new Vector2D(value[0].x, value[0].y), new Vector2D(value[1].x, value[1].y))); + break; + } + + case InstructionType.Circle: + { + console.log("New circle " + value) + this.shapes.push(new Circle(this.context, new Vector2D(value[0].x, value[0].y), value[1])); + break; + } + } + } - this.shapes.push(new Polygon(this.context, - [ - new Vector2D(150, 150), - new Vector2D(150, 250), - new Vector2D(250, 250), - new Vector2D(250, 150), - new Vector2D(300, 300), - new Vector2D(250, 350), - ])) this.redraw(); } diff --git a/src/parser/instruction.ts b/src/parser/instruction.ts index 764a139..87848b9 100644 --- a/src/parser/instruction.ts +++ b/src/parser/instruction.ts @@ -59,7 +59,7 @@ class CircleInstruction extends Instruction { constructor() { - super(InstructionType.Line, 2); + super(InstructionType.Circle, 2); } eval()