forked from ccccourse/wp110b
-
Notifications
You must be signed in to change notification settings - Fork 0
/
06.js
65 lines (54 loc) · 1.29 KB
/
06.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
class k {
constructor(n) {
this.a = n;
}
length() {
var i, r = 0;
for (var i = 0; i < this.a.length; i++) {
r += this.a[i] * this.a[i];
}
return Math.sqrt(r);
}
neg() {
var i, a =[] ;
for (i=0;i<this.a.length;i++) {
a[i] = this.a[i]*-1;
}
return new k(a);
}
add(t) {
var i, a = [];
for ( i=0; i<this.a.length; i++) {
a[i] = this.a[i]+t.a[i];
}
return new k(a);
}
sub(t) {
var i;
for ( i= 0; i < this.a.length; i++) {
return this.add(t.neg());
}
}
dot(t) {
var i, r= 0;
for (i = 0; i < this.a.length; i++) {
r = r + this.a[i] * t.a[i];
} return r;
}
distance(t) {
return this.sub(t).length();
}
toString() {
return JSON.stringify(this.a);
}
}
let p = new k([2,3,4]), t = new k([1,2,5]);
console.log(p);
console.log(p.toString());
console.log(p + '');
console.log('p.length()=', p.length());
console.log('p.sub(t)=', p.sub(t));
console.log('p.dot(t)=', p.dot(t).toString());
console.log('p.sub(t).length()=', p.sub(t).length());
console.log('p.distance(t)=', p.distance(t));
console.log(t.neg());