Я собираюсь предположить, что вы знакомы с рисованием основных линий на холсте, если нет, то ответьте, и мы можем углубиться назад.Однако, что касается простого рисования синусоидальной функции, в классе Math есть функция, которая имеет именно то, что вам нужно.http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Math.html#sin%28double%29 Оттуда вам просто нужно передать переменную x (в радианах) в функцию и сохранить ее вывод как переменную y.Это представляет точку на вашем графике.Теперь немного увеличьте переменную x1 (возможно, 1/100 вашего графика, хотя вам нужно будет настроить ее по вкусу), снова запустите ее через функцию и сохраните эти переменные (x2 и y2) в качестве второй точки.Проведите линию между этими двумя точками.Сохраните переменные x2, y2 как x1, y1 и снова увеличьте значение x, чтобы найти третью точку, и так далее, и тому подобное.Это не «истинная» кривая, поскольку на самом деле это просто серия линий, которые приближают функцию, если хотите, подход исчисления.
Итак:
x1 = x;// где x - это некоторая точка на оси x, с которой вы хотели бы начать построение графика.
y1 = sin (x);
x2 = x1 + increment;
y2 = sin (x2);
// Нарисуйте здесь линию
x1 = x2;y1 = y2;
// вернемся к началу, этот код, очевидно, будет в цикле, в котором используется приращение в качестве собственного приращения с начальным значением, равным величине, которую вы хотите увеличивать каждый раз (скажем,.... 5) и следующим оператором является increment = increment + 5.
Существует также класс GraphCanvas, с которым я не знаком, который, кажется, берет те же точки и рисует кривую между ними,хотя я не уверен, какой тип преобразования используется для рисования кривой и насколько это точно.Вот класс: http://www.java2s.com/Code/Java/Swing-Components/GraphCanvas.htm