Note that there are some explanatory texts on larger screens.

plurals
  1. POJFreeChart simple plot (parabola)
    primarykey
    data
    text
    <p>I wrote a simple parabola plot using JFreeChart.</p> <pre><code>package parabolademo; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartMouseEvent; import org.jfree.chart.ChartMouseListener; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; import org.jfree.data.function.Function2D; import org.jfree.data.function.PolynomialFunction2D; import org.jfree.data.general.DatasetUtilities; import org.jfree.data.xy.XYDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class ParabolaDemo extends ApplicationFrame { /* * @param title the frame title. */ public ParabolaDemo(final String title) { super(title); double[] a = {0.0, 0.0, 3.0}; Function2D p = new PolynomialFunction2D(a); XYDataset dataset = DatasetUtilities.sampleFunction2D(p, -20.0, 20.0, 100, "Function"); final JFreeChart chart = ChartFactory.createXYLineChart( "Parabola", "X", "Y", dataset, PlotOrientation.VERTICAL, true, true, false ); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.addChartMouseListener(new ChartMouseListener() { @Override public void chartMouseClicked(ChartMouseEvent cme) { Point2D po = chartPanel.translateScreenToJava2D(cme.getTrigger().getPoint()); Rectangle2D plotArea = chartPanel.getScreenDataArea(); XYPlot plot = (XYPlot) chart.getPlot(); // your plot double chartX = plot.getDomainAxis().java2DToValue(po.getX(), plotArea, plot.getDomainAxisEdge()); double chartY = plot.getRangeAxis().java2DToValue(po.getY(), plotArea, plot.getRangeAxisEdge()); System.out.println("Clicked!"); System.out.println("X:" + chartX + ", Y:" + chartY); } @Override public void chartMouseMoved(ChartMouseEvent cme) { } }); chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); setContentPane(chartPanel); } public static void main(final String[] args) { final ParabolaDemo demo = new ParabolaDemo("Parabola Plot Demo"); demo.pack(); RefineryUtilities.centerFrameOnScreen(demo); demo.setVisible(true); } </code></pre> <p>}</p> <p>How to get coordinates of FUNCTION PLOT point (my chartMouseListener get coordinates of any point in window)? how to receive point coordinates after the user moved mouse and released the mouse button? I want that when clicking a mouse, the point of the plot followed a mouse, thus the plot will be rebuilt (for this purpose it is necessary to calculate again coefficients, knowing this coordinate and having taken any 2 other coordinates). How it can be done? How rebuilt plot with new coefficients?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload