Ich habe diesen Code geschrieben, aber es ((((bY - aY)/(maxX - minX)) * (p.getX() - minX)) + aY)
nicht berechnet für me.please mir helfen.Rechenaufgabe
ein Teil des Codes: meine spezifischen Arithmetik (I haben vier Punkte, die aY die „y“ der Punkt „a“ bedeutet)
int aY = minXY[0];
int bY = maxXY[0];
int cY = minXY[minXY.length - 1];
int dY = maxXY[maxXY.length - 1];
for (Point p : pointList) {
if ((p.getY() > ((((bY - aY)/(maxX - minX)) * (p.getX() - minX)) + aY)) && (p.getY() < ((((dY - cY)/(maxX - minX)) * (p.getX() - minX)) + cY))) {
list.add(p);
} else if (p.getY() < ((((bY - aY)/(maxX - minX)) * (p.getX() - minX)) + aY)) {
upperHull.add(p);
int m = ((((bY - aY)/(maxX - minX)) * (p.getX() - minX)) + aY);
System.out.println(m);
} else if (p.getY() > ((((dY - cY)/(maxX - minX)) * (p.getX() - minX)) + cY)) {
lowerHull.add(p);
}
}
der Ausgang eine ganze Zahl sein, die der völlig "y" of point "a".
ist Anweisung funktioniert nicht.bitte helfen Sie mir warum? Ich habe auch jeden Wert in der arithmetischen Anweisung überprüft und sie sind in Ordnung, aber kann das Ergebnis für mich nicht berechnen. spezifische arithmetische Anweisung: ((((bY - aY)/(maxX - minX)) * (p.getX() - minX)) + aY)
„... und der wahrscheinlichste Grund dafür ist, dass alle Variablen int sind, so dass es Integer-Arithmetik tut, aber Sie wollen wahrscheinlich Gleitkommazahlen Ergebnisse Ihrer Divisionen zu bekommen ...“ - genau so. +1 – duffymo
auch ich habe alle int zu verdoppeln aber immer noch funktioniert es nicht !!!! – user472221
+1. Ein noch besserer Grund (als Effizienz) für die Extraktion lokaler Variablen ist die Klarheit. Es ist sehr schwer zu sehen, was du versuchst zu tun; Die Berechnung von Termen wie deltaX und xRange würde beginnen, dies zu klären. –