summaryrefslogtreecommitdiffstats
path: root/šola/p1/dn/6
diff options
context:
space:
mode:
Diffstat (limited to 'šola/p1/dn/6')
-rw-r--r--šola/p1/dn/6/Premica.java50
-rw-r--r--šola/p1/dn/6/Tocka.java27
2 files changed, 77 insertions, 0 deletions
diff --git a/šola/p1/dn/6/Premica.java b/šola/p1/dn/6/Premica.java
new file mode 100644
index 0000000..2d2ec4e
--- /dev/null
+++ b/šola/p1/dn/6/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));
+ }
+}
diff --git a/šola/p1/dn/6/Tocka.java b/šola/p1/dn/6/Tocka.java
new file mode 100644
index 0000000..8dce30b
--- /dev/null
+++ b/šola/p1/dn/6/Tocka.java
@@ -0,0 +1,27 @@
+import java.util.*;
+public class Tocka {
+ private double x;
+ private double y;
+ public Tocka(double x, double y) {
+ this.x = x;
+ this.y = y;
+ }
+ public double vrniX() {
+ return this.x;
+ }
+ public double vrniY() {
+ return this.y;
+ }
+ public String toString() {
+ return String.format(Locale.ROOT, "(%.2f, %.2f)", this.x, this.y);
+ }
+ public static Tocka izhodisce() {
+ return new Tocka(0, 0);
+ }
+ public double razdalja(Tocka t) {
+ return Math.sqrt(Math.pow(this.x-t.x, 2)+Math.pow(this.y-t.y, 2));
+ }
+ public double razdaljaOdIzhodisca() {
+ return izhodisce().razdalja(this);
+ }
+}