package lab6F import java applet Applet import java awt import javax s

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package lab6F;
import java.applet.Applet;
import java.awt.*;
import javax.swing.*;
public class MyBigApplet {
public static void main(String argv[])
{
JFrame jp1 = new JFrame();
MyApplet a = new MyApplet();
// создаем окно с аплетом
jp1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jp1.getContentPane().add(a, BorderLayout.CENTER);
jp1.setSize(new Dimension(340,340));
double x[] = new double[200];
double y[] = new double[200];
int j = 0;
double h = Math.PI/99;
double i = h;
while(Math.abs(2*Math.PI - i) > 0.000001)
{
x[j] = i;
y[j++] = Math.sin(i);
i+=h;
}
a.setData(x,y,200);
a.setCoord(10,10,310, 310); // график в окно
a.init();
a.start();
jp1.setVisible(true);
}
}
class MyApplet extends Applet {
// новые поля класса
double nx[],ny[];
int size;
// метод для установки данных
public void setData(double x[], double y[], int s)
{
size = s;
nx = new double[s];
ny = new double[s];
for(int i = 0; i<size; i++)
{
nx[i] = x[i];
ny[i] = y[i];
}
}
// установка размера графика
public void setCoord(int x1, int y1, int x2, int y2)
{
wX = x2-x1; wY = y2-y1;
}
// поля класса
private int wX, wY, cX, cY;
// точка входа
public void init()
{
// размер окна
setSize(wX,wY);
// центр координат
cX = 10; cY = wY/2;
}
// рисование апплета
public void paint(Graphics g)
{
// оси Х У
g.drawLine(cX,0,cX,wY);
g.drawLine(0,cY,wX,cY);
// масштабирование
double alphaX = wX/(2*Math.PI)*0.8;
double alphaY = wY/2*0.9;
int x[];
x = new int[size];
int y[];
y = new int[size];
for(int i = 0; i<size; i++)
{
x[i] = cX + (int)Math.round(nx[i]*alphaX);
y[i] = cY - (int)Math.round(ny[i]*alphaY);
System.out.print( x[i] +"\t" +y[i] +"\n");
}
g.drawPolyline(x, y, size-3);
char str[];
str = new char[1];
str[0] = 'X';
g.drawChars(str, 0, 1, cX+15, 20);
str[0] = 'Y';
g.drawChars(str, 0, 1, wX-20, cY+15);
}
}