Вопрос задан 01.03.2019 в 07:55. Предмет Информатика. Спрашивает Бакланов Никита.

Как двигать окружность? по квадрату,по часовой стрелке так же обратно

0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Моргачёва Настя.
public partial class Form1 : Form{    public Form1()    {        InitializeComponent();        this.Load += Form1_Load;        this.Paint += Form1_Paint;        DoubleBuffered = true;    }     int r = 100;     //радиус    int x0 = 150;   //координата X центра окружности    int y0 = 150;   //координата X центра окружности    float x = 0, y = 0;    double fi = 0.0;    void Form1_Load(object sender, EventArgs e)    {        Timer tmr = new Timer();        tmr.Interval = 30;        tmr.Tick += tmr_Tick;        tmr.Start();    }     void tmr_Tick(object sender, EventArgs e)    {        fi += 0.1;        if (fi > 2 * Math.PI) fi = 0.0;        x = (float)(r * Math.Cos(fi) + x0);        y = (float)(r * Math.Sin(fi) + y0);        Invalidate();    }     void Form1_Paint(object sender, PaintEventArgs e)    {        e.Graphics.FillEllipse(Brushes.Red, x, y, 20, 20);    }}
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Чтобы двигать окружность по квадрату, сначала нужно определить координаты вершин этого квадрата. Предположим, что центр окружности находится в точке (x0, y0), а сторона квадрата имеет длину d. Тогда вершины квадрата будут иметь следующие координаты:

A(x0 - d/2, y0 - d/2) B(x0 + d/2, y0 - d/2) C(x0 + d/2, y0 + d/2) D(x0 - d/2, y0 + d/2)

Чтобы двигать окружность вдоль квадрата по часовой стрелке, можно использовать следующий алгоритм:

1. Установите начальные значения координат окружности. Предположим, что начальные координаты центра окружности равны (x0, y0).

2. Увеличьте x0 на d/10 (или любую другую величину, которая определяет величину перемещения) для сдвига окружности вправо.

3. Пересчитайте координаты вершин квадрата с учетом новых координат центра окружности.

4. Отобразите новое положение окружности на экране, используя новые координаты вершин квадрата и новые координаты центра окружности.

5. Повторите шаги 2-4 нужное количество раз для достижения желаемого эффекта движения окружности по квадрату.

Чтобы двигать окружность вдоль квадрата в обратном направлении (против часовой стрелки), можно использовать тот же алгоритм, но уменьшать x0 на d/10 вместо увеличения.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос