/** * The view was resized * * @param width * @param height */ public void resize(int width, int height) { this.width = width; this.height = height; axes.resize(width, height); setData(); pickX[0] = (int) ((valueX - xMin) * axes.getXScale()) + Axes.LEFT_MARGIN; pickX[1] = pickX[0]; }
/** * Get the graph coordinates at the mouse X/Y. * * @param mouseX * @param mouseY * @return */ public float[] getValueAt(int mouseX, int mouseY) { valueX = (mouseX - Axes.LEFT_MARGIN) / axes.getXScale() + xMin; double y = Double.NaN; if ((valueX >= xMin) && (vertex != null)) { for (int i = 3; i < vertex.length; i += 3) { if (valueX < vertex[i]) { double w = (valueX - vertex[i - 3]) / (vertex[i] - vertex[i - 3]); y = w * (vertex[i + 1] - vertex[i - 2]) + vertex[i - 2]; break; } } } pickX[0] = mouseX; pickX[1] = mouseX; if ((valueX > xMin) && (valueX < xMax)) { return (new float[] {(float) valueX, (float) y}); } else { return (null); } }
private void setData() { buildLine(vertex, vertexCount, xMin, yMin, axes.getXScale(), axes.getYScale()); pickY[0] = height - Axes.BOTTOM_MARGIN; pickY[1] = height - (axes.getHeight() + Axes.BOTTOM_MARGIN); }