есть 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;
}
}
}
У меня никак не получается построить график моей функции, не могу совместить коды... помогите пожалуйста исправить код. это мой первый опыт работы с апплетами... заранее огромное спасибо.