-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathturntest.js
76 lines (61 loc) · 1.55 KB
/
turntest.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
var width = 800;
var height = 600;
function getCanvas() {
return document.getElementById('canvas');
}
window.addEventListener('load', function() {
var canvas = getCanvas();
if(canvas && canvas.getContext) {
var context = canvas.getContext('2d');
if (context) {
context.fillStyle = '#fff';
context.fillRect(0, 0, width, height);
}
}
canvas.addEventListener('mousemove', mouseMove, false);
canvas.addEventListener('mousedown', mouseDown, false);
}, false);
function getEventXCoord(ev){
if(ev.layerX){ //Firefox
return ev.layerX;
}
return ev.offsetX; //Opera
}
function getEventYCoord(ev){
if(ev.layerY){ //Firefox
return ev.layerY;
}
return ev.offsetY; //Opera
}
function mouseDown(ev){
var canvas = getCanvas();
context = canvas.getContext('2d');
debug = 1;
}
function getLine2(){
return new Segment(new Vector(0, 100), new Vector(150, 50));
}
var debug = 1;
function mouseMove(ev) {
var canvas = getCanvas();
context = canvas.getContext('2d');
context.fillStyle = '#fff';
context.fillRect(0, 0, width, height);
context.fillStyle = '#f00'; //red
context.strokeStyle = '#000'; //green
context.lineWidth = 4;
var x = getEventXCoord(ev);
var y = getEventYCoord(ev);
y = 600 - y;
var p1 = new Vector(0, 200);
var p2 = new Vector(150, 150);
var p3 = new Vector(x, y);
var seg1 = new Segment(p2, p3);
var seg2 = new Segment(p1, p2);
if(leftTurn(p1, p2, p3)){
seg1.color = '#f00';
seg2.color = '#f00';
}
seg1.draw(getCanvas());
seg2.draw(getCanvas());
};