I/8) * d/30)),
(int) (yA - (int) (sin (angel * PI/180 + PI/2-PI/8) * d/30)),
(int) (xA),
(int) (yA));. setFont (new Font («Dialog», Font.PLAIN, (int) d/40));. drawString («Y», (int ) (xA + (int) (cos (angel * PI/180 + PI / 2 + PI / 2) * d/40)), (int) (yA - (int) (sin (angel * PI/180 + PI/2 + PI / 2) * d/40)));
}
Частина коду методу paintComponent (Graphics g) області відображення здійснює відображення осей:
double z=pow (0.9, zoom); dim=this.getSize (); w=(int) image_w; h=(int) image_h; D g2=(Graphics2D) g; (w> ; dim.width | | h> dim.height) {(xy_ord!=null) {sx=dim.width / (double) w; sy=dim.height / (double) h; _ord.paint (g2, max ( dim.width + z * sx * abs (x_drag + x_init), dim.height + z * sy * abs (y_drag + y_init)),, * z, * z, Point ((int) (- x_drag - x_init), (int) (- y_drag - y_init)));
}
} else {(xy_ord!=null) {_ord.paint (g2, max (dim.width + z * abs (x_drag + x_init), dim.height + z * abs (y_drag + y_init )),,,, Point ((int) (- x_drag - x_init), (int) (- y_drag - y_init)));
}
}
/ / Motion render-> (isOxyOn) {Ord (new Point ((int) (px - x_drag), (int) (py - y_drag)), 1,1,180 + angel_ord * 0.5 , dim). (g2, max (dim.width, dim.height), dim, 1,1, new Point (0,0));
}
5. Генерація вихідних даних
Вихідними даними є таблиця координат точок графіка щодо встановлених осей координат і встановленого масштабу. Вихідні координати для одиничної точки визначаються наступним чином. Як було зазначено раніше точка в додатку визначається як об'єкт класу G_Point і визначається її координатами в області відображення і умовою, в якому вона була створена. Осі координат також є об'єктом класу Ord і визначаються аналогічним чином. Спочатку обчислюємо наведені координати точки в її умова до умови осей координат. Потім знаходимо проекції наведених координат на обидві осі і формуємо компоненти вихідних координат як відповідні відстані від координат, що характеризують осі (об'єкт класу Ord) до раніше знайдених проекцій на ці осі з поправкою на вибраний масштаб. Реалізацією в додатку є метод generateCords класу G_Point, який повертає пару дійсних чисел, які є вихідними координатами точки:
public List generateCords (Ord ord, double xStrain, double yStrain) {mx=ord.getMultX (); my=ord.getMultY (); dx=(ord.getDim (). width - dim.width) / 2; dy=(ord . getDim (). height-dim.height) / 2; x_c=(ord.getDim (). width) / 2; y_c=(ord.getDim (). height) / 2; zx=mx / multx; zy= my / multy; x1=(center.x + dx - x_c) * zx + x_c; y1=- (- (center.y + dy) + y_c) * zy + y_c; x0=ord.getPoint (). x; y0=ord.getPoint (). y; x0s=ord.getPoint (). x - (cos (ord.getAngel () * PI/180)); y0s=ord.getPoint (). y + (sin (ord. getAngel () * PI/180)); resultX=findPoj (x0, y0, x0s, y0s, x1, y1) * xStrain; s=ord.getPoint (). x - (cos (ord.getAngel () * PI / 180 + PI / 2)); s=ord.getPoint (). y + (sin (ord.getAngel () * PI/180 + PI / 2)); resultY=findPoj (x0, y0, x0s, y0s, x1 , y1) * yStrain; out=new ArrayList ();. add (0, resultX);. add (1, resultY); out;
}
double findPoj (double x0, double y0, double x0s...