2017-09-18 4 views
-4

Je n'ai jamais utilisé Java, un de mes amis de programmation m'a donné ça pour essayer de m'habituer à Java.Comment trouver l'interception X d'une pente en Java?

Il m'a donné le fichier test.java avec quelques pointeurs pour faire la ligne line. Cependant, je ne sais toujours pas comment écrire du code pour la pente ou y_int. Je suppose pour vert que je continue à utiliser une déclaration booléenne et si/sinon, mais je suis un peu perdu.

c'est le Test.java:

public class Test { 
    public static void main(String [] args) { 

     Line line[] = {new Line(5,4), 
      new Line(0,2), 
      new Line(5)}; 

     int i = 1; 
     for(Line li : line){ 
      System.out.println("The x-intercept of line "+i+" is "+ 
       li.getX_int()); 
      i++; 
     } 
    } 
} 

c'est la classe Line.java:

public class Line { 

    public double slope; 
    public double y_int; 
    public double x_int; 
    public boolean vert; 

    public Line(double slope, double y_int){ 
     this.slope = slope; 
     this.y_int = y_int; 
     vert = false; 
    } 

    public Line(double x_int) { 
     slope = Double.NaN; 
     y_int = Double.NaN; 
     vert = true; 
     this.x_int = x_int; 
    } 

    public double getSlope() { 
     return slope; 
    } 

    public double getY_int() { 
     return y_int; 
    } 

    public boolean isVert() { 
     return vert; 
    } 
} 
+0

ASTUCE: pour les lignes non verticales, x_intercept = (0 - y_intercept)/pente –

Répondre

2

Pensez définitions profondes pour les choses.

Votre équation pour une ligne est:

y(x) = m*x + b 

m = slope 
b = y-intercept 

Vous calculer x à l'origine en réglant y égale à zéro et la résolution de x:

x-intercept = -b/m 

Cela vous laissera tomber pour m = 0, parce que vous ne pouvez pas diviser par zéro. Dans ce cas, est sans interception x. C'est une ligne parallèle à l'axe des x.

De même, est aucune ordonnée à l'origine pour une ligne verticale parallèle à l'axe y.

Que comptez-vous définir pour les interceptions pour ces cas extrêmes?