blob: 2d2ec4e40d8a8a0d4808a2738088f0e16b5ed8eb (
plain) (
blame)
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
|
import java.util.*;
public class Premica {
private double k;
private double n;
public Premica(double k, double n) {
this.k = k;
this.n = n;
}
public double vrniK() {
return this.k;
}
public double vrniN() {
return this.n;
}
public String toString() {
return String.format(Locale.ROOT, "y = %.2f x + %.2f", this.k, this.n);
}
public Tocka tockaPriX(double x) {
return new Tocka(x, this.k*x+this.n);
}
public static Premica skoziTocko(double k, Tocka t) {
return new Premica(k, t.vrniY()-k*t.vrniX());
}
public Premica vzporednica(Tocka t) {
return skoziTocko(this.k, t);
}
public Premica pravokotnica(Tocka t) {
return skoziTocko(-1/this.k, t);
}
public Tocka presecisce(Premica p, double epsilon) {
if (Math.abs(this.k - p.vrniK()) < epsilon)
return null;
return tockaPriX((this.n-p.vrniN())/(p.vrniK()-this.k));
}
public Tocka projekcija(Tocka t) {
return presecisce(pravokotnica(t), 0);
}
public double razdalja(Tocka t) {
return t.razdalja(projekcija(t));
}
public double razdaljaOdIzhodisca() {
return Tocka.izhodisce().razdalja(projekcija(Tocka.izhodisce()));
}
public double razdalja(double n) {
return new Premica(this.k, n).razdalja(tockaPriX(0));
}
}
|