есть 2 кода 1 - рассчитывает значение функции y=1/2*sin(x)+5, где х={1,2,3,4,5,6,7,8,9,10}
| Код | public class Function { public static void main(String [] args) { int [] x = new int [10]; double [] y = new double [10]; for(int i = 0; i < x.length; i++) { x [i] = i + 1; y [i] = 1.0/2.0 * Math.sin(x[i]) + 5; System.out.println("x = " + x [i] + " y = " + y [i]); } System.out.println(Arrays.toString(y)); } }
|
2 - строит график функции, но не y=1/2*sin(x)+5, а другой, но тоже с синусом.
| Код | import java.awt.Color; import java.awt.Graphics; import java.util.Iterator; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JPanel;
public class TG extends JFrame { private GraphPanel g;
public TG() { Vector<Double> d = new Vector<Double>();
// Заполняем вектор данными - например для функции double t = 0; while(t<=2*Math.PI) { double s = Math.sin(t); d.add(new Double(s)); t += 0.1; }
g = new GraphPanel(d); getContentPane().add(g); setBounds(100, 100, 300, 300); } /** Creates a new instance of TG */ /** * @param args the command line arguments */ public static void main(String[] args) { TG t = new TG(); t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); t.setVisible(true); } } class GraphPanel extends JPanel { private Vector<Double> data;
public GraphPanel(Vector<Double> data) { this.data = data; }
public void paintComponent(Graphics g) { super.paintComponent(g);
// максимальная ширина графика - 2*PI // максимальная высота = 1, минимальная = -1 // Вычисляем коэффициенты
double Kx = getWidth()/(2*Math.PI); double Ky = getHeight()/2.0;
double xo = -1; double yo = -1;
double x = 0; for(Iterator<Double> it=data.iterator(); it.hasNext(); ) { double y = it.next().doubleValue();
// Рисование начинаем для второй точки if(xo>=0.0) { int x1 = (int) (xo*Kx); int x2 = (int) (x*Kx); // Учитываем, что координаты идут сверху вниз и максимальное число = 1 int y1 = (int) (getHeight()-(yo+1)*Ky); int y2 = (int) (getHeight()-(y+1)*Ky); g.drawLine(x1, y1, x2, y2); } xo = x; yo = y; x += 0.1; } } }
|
У меня никак не получается построить график моей функции, не могу совместить коды... помогите пожалуйста исправить код. это мой первый опыт работы с апплетами... заранее огромное спасибо. |