Abstand zweier Punkte im Raum

  • Themenstarter Themenstarter Joerg66
  • Beginndatum Beginndatum
J

Joerg66

Hallo,
ich habe ein NC-Programm, das ich einlesen und bearbeiten muss.
Um die länge des Fräsweges ermitteln zu können, muss ich immer den Abstand eines Punktes zum nächsten ermitteln z.B.:

x10 y10 z10
x30 y20 z10
x30 y-30 z-2
usw.
Ich habe mit Point.distance(.....) rumprobiert, erst in zwei Achsen und das Ergebnis daraus als Basis für die dritte, hat aber nicht so geklappt. Ich denke das muss irgendwie über eine Matrix gehen, hat jemand sowas schon mal gemacht ? Und einen Tip für mich ?
Gruss Joerg
 
Hallo!

Schau mal hier:
Code:
/**
 * 
 */
package de.tutorials;

/**
 * @author Tom
 * 
 */
public class Distance3D {

    /**
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(new Point3D(0, 0, 0)
                .distance(new Point3D(10, 10, 10)));

    }

    static class Point3D {
        int x;

        int y;

        int z;

        public Point3D(int x, int y, int z) {
            this.x = x;
            this.y = y;
            this.z = z;
        }

        public double distance(Point3D p) {
            int dx = this.x - p.x;
            int dy = this.y - p.y;
            int dz = this.z - p.z;
            return Math.sqrt(dx * dx + dy * dy + dz * dz);
        }
    }

}

Gruß Tom
 
hi,
da war mein Ansatz ja schon richtig :-)
Allerdings nicht halb so elegant gelöst wie Du das gemacht hast.
Funktioniert prima, vielen Dank für den Code.
Gruss Joerg
 
Zurück