MegaTron_86
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Доброго времени суток господа программисты! =) Прошу вас помочь с решением одной задачки, фактически дописан код, вот малость додумать не могу,вот условие: Изобразить разносторонний треугольник, вращающийся в плоскости апплета вокруг своего центра тяжести. Вот то что у меня получилось, не знаю как дописать программку, помогите плиз Код: package zada; import java.applet.*; import java.awt.*; public class Treygolnik extends Applet implements Runnable { Thread t = null; // поток int i = 0, x1 = 200, y1 = 200, // i -- текущее положение; x1, y1 -- координаты первого // конца отрезка x3 = 50, y3 = 50, x4 = 110, y4 = 110, x2 = 220, y2 = 50, num = 90; // x2, y2 -- координаты второго конца отрезка; num -- // кол-во шагов по окружности (90 -- шаг на 4 градуса) double r2 = 100, ugi2 = 2* Math.PI / num, ug2; // r -- длина отрезка; ugi double r3 = 100, ugi3 = Math.PI / num, ug3;// -- угол поворота, ug -- double r4 = 100, ugi4 = Math.PI / num, ug4;// расчёт текущего угла public void init() { this.setSize(380, 380); // задаём размер апплета } public void start() { if (t == null) // если поток пуст t = new Thread(this); // создаём новый t.start(); // запускаем поток } public void run() { while (true) // выполняем в бесконечном цикле { try { Thread.sleep(25); // задержка в мс ug2 = i++ * ugi2; // рассчитываем текущий угол x2 = (int) Math.round(x1 + r2 * Math.cos(ug2)); // считаем // координаты // второго конца y2 = (int) Math.round(y1 + r2 * Math.sin(ug2)); x3 = (int) Math.round(x1 + r3 * Math.tan(ug3)); // считаем // координаты // второго конца y3 = (int) Math.round(y1 + r3 * Math.sin(ug3)); x4 = (int) Math.round(x1 + r4 * Math.cos(ug4)); // считаем // координаты // второго конца y4 = (int) Math.round(y1 + r4 * Math.sin(ug4)); if (i >= num) i = 0; // если прошли окружность, то начинаем снова repaint(); // вызываем отрисовку отрезка } catch (InterruptedException e) { } } } public void paint(Graphics dr) { { //dr.setColor(Color.green); dr.drawLine(x3, y3, x2, y2); dr.drawLine(x2, y2, x4, y4); dr.drawLine(x3, x3, x4, y4); } } } | Добавлено: "вращающийся в плоскости апплета вокруг своего центра тяжести" - это то, чего мне и не хватает |