diff options
author | Anton Luka Šijanec <anton@sijanec.eu> | 2023-12-06 20:09:53 +0100 |
---|---|---|
committer | Anton Luka Šijanec <anton@sijanec.eu> | 2023-12-06 20:09:53 +0100 |
commit | 787a189b5773928bfcb09173c4407475ea6b0219 (patch) | |
tree | 80802d5ed7f9d1dc410b62ee123e1f4cd3756db8 /šola/p1/dn/Premica.java | |
parent | malo lepši output (diff) | |
download | r-787a189b5773928bfcb09173c4407475ea6b0219.tar r-787a189b5773928bfcb09173c4407475ea6b0219.tar.gz r-787a189b5773928bfcb09173c4407475ea6b0219.tar.bz2 r-787a189b5773928bfcb09173c4407475ea6b0219.tar.lz r-787a189b5773928bfcb09173c4407475ea6b0219.tar.xz r-787a189b5773928bfcb09173c4407475ea6b0219.tar.zst r-787a189b5773928bfcb09173c4407475ea6b0219.zip |
Diffstat (limited to '')
-rw-r--r-- | šola/p1/dn/Premica.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/šola/p1/dn/Premica.java b/šola/p1/dn/Premica.java new file mode 100644 index 0000000..2d2ec4e --- /dev/null +++ b/šola/p1/dn/Premica.java @@ -0,0 +1,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)); + } +} |