-
Notifications
You must be signed in to change notification settings - Fork 0
/
Camera.java
42 lines (37 loc) · 960 Bytes
/
Camera.java
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
public class Camera {
double x, y, z, aspectRatio;
double fov;
public Camera(double _x, double _y, double _z, double _fov, double ar) {
this.x = _x;
this.y = _y;
this.z = _z;
this.aspectRatio = ar;
changeFov(fov);
}
public void moveX(double _x) {
this.x += _x;
//System.out.println(this.x);
}
public void moveY(double _y) {
this.y -= _y;
//System.out.println(this.y);
}
public void moveZ(double _z) {
//if (this.z >= 0) {
this.z += _z;
//System.out.println(this.z);
/*}
else {
this.z = 0;
}*/
}
public void changeFov(double angle) {
this.fov = 2*arctan(tan(angle/2.0)*aspectRatio);
}
public double tan(double input) {
return(Math.tan(Math.toRadians(input)));
}
public double arctan(double input) {
return(Math.atan(input));
}
}