Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/17: Рейтинг темы: голосов - 17, средняя оценка - 4.65
4 / 5 / 2
Регистрация: 17.09.2021
Сообщений: 416

Движение графики

12.03.2024, 00:49. Показов 4289. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, изменить траекторию движение
C++
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
#include <iostream>
#include <graphics.h>
int main() {
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "");  // Инициализация графического режима
    settextstyle(DEFAULT_FONT, HORIZ_DIR, 3);  // Установка стиля текста
    int x = 0, y = 0;
    int step = 5;
    int directionX = 1;
    int directionY = 1;
 
    while (1) {
        cleardevice();  // Очистка экрана
 
        outtextxy(x, y, "Мансуров");  // Отображение текста
 
        delay(100);  // Задержка в 100 миллисекунд
 
        // Обновление координат текста в зависимости от направления движения
        if (x + textwidth("Мансуров") <= getmaxx() && y + textheight("Мансуров") <= getmaxy() && x >= 0 && y >= 0) {
            // Движение с левого верхнего угла на правый нижний угол
            x += step * directionX;
            y += step * directionY;
        }
        else if (x + textwidth("Мансуров") <= getmaxx() && y + textheight("Мансуров") > getmaxy() && x >= 0) {
            // Движение с правого нижнего угла в верхний правый угол
            x += step * directionX;
            y -= step * directionY;
        }
        else if (x >= 0 && y + textheight("Мансуров") <= getmaxy() && y >= 0) {
            // Движение с верхнего правого угла в левый нижний угол
            x -= step * directionX;
            y += step * directionY;
        }
        else {
            break;  // Завершение программы после возврата в начальную позицию
        }
    }
 
    closegraph();
 
    return 0;
}
Изображения
 
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.03.2024, 00:49
Ответы с готовыми решениями:

Графики (Нужно в VC++ построить графики...)
Нужно в VC++ построить графики...Двумерные и трехмерные...Не подскажете как?

Движение планеты в системе двойной звезды или движение трех тел
программа должна выводить координаты движения звезд и планеты в файл (рисую в gnuplot). во-первых, не понимаю, почему выходит, что все...

Движение спутника. Движение точки по эллипсу в c++ builder
Здравствуйте, есть код программы, который строит движение точки по эллипсу. Для этого использовались только большая полуось 'a' и меньшая...

39
Just Do It!
 Аватар для XLAT
4220 / 2685 / 656
Регистрация: 23.09.2014
Сообщений: 9,241
Записей в блоге: 3
13.03.2024, 07:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от gunslinger Посмотреть сообщение
Подправил
не увлекайтесь, а то анреал-6 получится))

у мя первое что хочется добавить это флоуты, таймер, видеобуфер ...
1
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
13.03.2024, 07:46

Не по теме:

XLAT, да я (как обычно) немного побалуюсь и успокоюсь.



Добавлено через 16 минут
Ну, видеобуфер тут использовать, наверно, излишне.
Я тоже хотел через таймер (а не задержку) делать "циклы отрисовки (движения)", но что-то сходу "не осилил", как это лучше сделать.
И что такое "флоуты"? (поисковик duckduckgo не помог понять)
0
Just Do It!
 Аватар для XLAT
4220 / 2685 / 656
Регистрация: 23.09.2014
Сообщений: 9,241
Записей в блоге: 3
13.03.2024, 08:00
Цитата Сообщение от gunslinger Посмотреть сообщение
И что такое "флоуты"?
это встроенный тип float

можно будет двигать текст с высокой точностью удобным образом на точное направление и на точное расстояние +
плавность анимации ...

Цитата Сообщение от gunslinger Посмотреть сообщение
Ну, видеобуфер тут использовать, наверно, излишне
учебный код же.
надо смотреть в методичку учителя про какие темы сие занятие.

а так видно, что картинка моргает, а двойная буферизация это легко исправит.
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
13.03.2024, 08:49
Цитата Сообщение от XLAT Посмотреть сообщение
это встроенный тип float
Я почему-то подумал про что-то другое.
Цитата Сообщение от XLAT Посмотреть сообщение
двойная буферизация
В билдере стандартное решение не всегда помогает (но можно примерно подобрать параметры движения, чтобы не так сильно было заметно мерцание). Видел где-то когда-то самописный способ, но так сразу не найду.
0
Just Do It!
 Аватар для XLAT
4220 / 2685 / 656
Регистрация: 23.09.2014
Сообщений: 9,241
Записей в блоге: 3
13.03.2024, 09:28
gunslinger,
есть там у мя ещё проектный баг,
это когда главный цикл визуализатора находится в частном двигателе конкретной сущности...

т.е. частный двигатель берёт на себя больше, чем обязан.

у вас с этим легче,
главный цикл срыт в отдельном треде доступ к которому, полагаю, через таймер.

поэтому вы там у ся "вынуждены" сразу писать нормально))
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
13.03.2024, 10:17
Цитата Сообщение от XLAT Посмотреть сообщение
главный цикл срыт в отдельном треде доступ к которому, полагаю, через таймер.
У меня все в одном потоке. Через таймер я запускал само начало движения (аналог запуска через нажатие кнопки).
Как я уже говорил, этапы отрисовки засунуть в таймер не получилось (работало через одно место, без задержки).
Изначально движение текста делалось с учетом принудительной задержки (без таймера).
Чтобы изменить код под работу в таймере, нужно программу переписывать заново с другой структурой логики. Но мне (пока?) лень, так как сделать сразу не получилось.
1
Just Do It!
 Аватар для XLAT
4220 / 2685 / 656
Регистрация: 23.09.2014
Сообщений: 9,241
Записей в блоге: 3
13.03.2024, 11:16
Цитата Сообщение от gunslinger Посмотреть сообщение
У меня все в одном потоке.
если весь цикл, когда "текст гуляет" - нельзя прожать батоны, то это костыль))

Цитата Сообщение от gunslinger Посмотреть сообщение
этапы отрисовки засунуть в таймер не получилось
"этапы отрисовки" это состояние движителя, которое нужно помнить между тиками таймера.
вроде и не сложно.

пример, как оно могло выглядеть(смотреть в код):
https://www.cyberforum.ru/post16449797.html

Цитата Сообщение от gunslinger Посмотреть сообщение
с учетом принудительной задержки (без таймера)
да, тривиальная задержка это не про таймер ...

Цитата Сообщение от gunslinger Посмотреть сообщение
Чтобы изменить код под работу в таймере, нужно программу переписывать заново с другой структурой логики.
+1

Цитата Сообщение от gunslinger Посмотреть сообщение
Но мне (пока?) лень
вот поэтому я тут на форуме, потому что форум мотивирует)
иначе я бы тоже палец о палец не ударил.

Цитата Сообщение от gunslinger Посмотреть сообщение
Но мне (пока?) лень
отсюда что следует:
нужно брать проЭктное задание с заточкой на социо-эмпатию(это когда ваше творчество будет интересно ещё ~1000 людей, кроме вас).

"Э" тут, пока, без помыслов о монетизации, хоть и с налётом амбициозности.
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
13.03.2024, 11:45
Цитата Сообщение от XLAT Посмотреть сообщение
если весь цикл, когда текст "гуляет" нельзя прожать батоны, то это костыль))
Я и не спорю. Прожать-то можно, только реакция будет лишь после того, как текст дойдет до конца (последней точки).
Цитата Сообщение от XLAT Посмотреть сообщение
пример, как оно могло выглядеть
Принцип я понимаю. Подход просто изначально не был особо заточен, как оказалось, под изменение кода с использованием таймера.
Цитата Сообщение от XLAT Посмотреть сообщение
"Э" тут, пока, без помыслов о монетизации.
Про монетизацию не понял. Но в любом случае я тут на добровольно-бесплатных началах (фрилансом давно не занимаюсь - по разным причинам, включая ту же лень, отсутствие мотивации, наличие множества халявщиков-студентов среди заказчиков со всеми вытекающими и прочее, не столь важное; раньше был постоянный заказчик, но ему что-то было нужно не так часто, а потом и он пропал - видимо, нашел исполнителей получше, как я ему и советовал изначально).

А на данный момент код такой (почти не изменился с предыдущей версии):
C++
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
void TForm1::MoveText(String text, String from, String to, double step, int delay)
{
  const int n = 9;
 
  int text_w = Canvas->TextWidth(text), text_h = Canvas->TextHeight(text),
      x1, y1, x2, y2, xw = ClientWidth - text_w, yh = ClientHeight - text_h;
  String dir[n] = {"NW", "NE", "SW", "SE",    "W",    "N",    "E",    "S",    "C"};
  int      x[n] = {   0,   xw,    0,   xw,      0, xw / 2,     xw, xw / 2, xw / 2},
           y[n] = {   0,    0,   yh,   yh, yh / 2,      0, yh / 2,     yh, yh / 2};
 
  bool a = false, b = false;
  for (int i = 0; i < n; i++)
  {
    if (from == dir[i] & !a)
      x1 = x[i], y1 = y[i], a = true;
    if (to == dir[i] & !b)
      x2 = x[i], y2 = y[i], b = true;
    if (a & b)
      break;
  }
 
  double dist_x = x2 - x1, dist_y = y2 - y1,
         dist = hypot(dist_x, dist_y), angle = atan2(dist_x, dist_y),
         tmp_x, tmp_y, sin_a = sin(angle), cos_a = cos(angle);
  for (double j = 0; j <= dist; j += step)
  {
    Refresh();
    tmp_x = x1 + j * sin_a;
    tmp_y = y1 + j * cos_a;
    Canvas->TextOutW(tmp_x, tmp_y, text);
    SleepEx(delay, true);
    Application->ProcessMessages();
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonClick(TObject *Sender)
{
  Button->Visible = 0;
 
  const int num = 5;
  String text = "я у мамы Пикачу", from, to,
         dir[num] = {"NW", "SE", "NE", "SW", "N"};  // первый вариант движения
  // String dir[num] = {"NW", "NE", "SW", "SE", "W"};  // второй вариант движения
 
  double step = 10;  // или 2
  int delay = step * 4;  // или * 10
 
  for (int i = 1; i < num; i++)
  {
    from = dir[i - 1];
    to = dir[i];
    MoveText(text, from, to, step, delay);
  }
 
  Button->Visible = 1;
}
Результат:
0
Just Do It!
 Аватар для XLAT
4220 / 2685 / 656
Регистрация: 23.09.2014
Сообщений: 9,241
Записей в блоге: 3
13.03.2024, 16:21
Цитата Сообщение от XLAT Посмотреть сообщение
вроде и не сложно.
обошёлся без корутинов,
код не увеличился, а может даже уменьшился:

C++
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
 
#include <graphics.h>
 
const int BORDER = 9999;
 
struct  Coord
{
    int x, y;
};
 
struct  Rebro
{
    Coord     dir;
    Coord       s;
    int speed = 1;
 
    void debug() const
    {   std::cout << "  dir: " << std::setw(4) << dir.x << ", "
                               << std::setw(4) << dir.y << '\n';
        std::cout << "  s  : " << std::setw(4) <<   s.x << ", "
                               << std::setw(4) <<   s.y << "\n\n";
    }
};
 
///----------------------------------------------------------------------------|
/// Тестовый объект.
///----------------------------------------------------------------------------:
struct  Object
{       Object(const char* ss = "Мансуров") : s(ss)
        {
            width  = textwidth (s.data());
            height = textheight(s.data());
        }
 
    Coord coord{50, 50};
 
    void show()
    {   outtextxy(coord.x, coord.y, s.data());
    }
 
    bool isout()
    {   return coord.x + width  > getmaxx() ||
               coord.y + height > getmaxy() || coord.x < 0 || coord.y < 0;
    }
 
private:
    int     width;
    int    height;
    std::string s;
};
 
///----------------------------------------------------------------------------|
/// Двигатель.
///----------------------------------------------------------------------------:
struct  Mover
{
    void go(){ go_step(); po->show(); }
 
    std::vector<Rebro> mymap;
 
    void set_obj(Object* o)
    {    po  = o;
         itr = mymap.begin();
         init_rebro();
    }
 
    void debug() const
    {   for(const auto& r : mymap)
        {   r.debug();
        }
    }
 
private:
    int  dx;
    int  dy;
 
    int adx;
    int ady;
 
    Coord s;
 
    std::vector<Rebro>::iterator itr;
 
    Object* po;
 
    void init_rebro()
    {
        const auto& rebro = *itr;
 
        s = {0, 0};
 
        dx  = rebro.dir.x * rebro.speed;
        dy  = rebro.dir.y * rebro.speed;
 
        adx = std::abs(dx);
        ady = std::abs(dy);
    }
 
    bool go_step()
    {
        if(itr == mymap.end()) return false;
 
        const auto& rebro = *itr;
 
        if( !(s.x < rebro.s.x &&
              s.y < rebro.s.y && !po-> isout()) )
        {
            if(++itr != mymap.end())
            {
                po->coord.x -= dx;
                po->coord.y -= dy;
                init_rebro();
            }
            else return false;
        }
 
        {   po->coord.x += dx;
            po->coord.y += dy;
 
            s.x += adx;
            s.y += ady;
        }
 
        return true;
    }
};
 
///----------------------------------------------------------------------------|
/// main.
///----------------------------------------------------------------------------:
int main()
{
    ///-----------------------|
    /// Технология...         |
    ///-----------------------:
    int gd = DETECT,  gm;
    initgraph ( &gd, &gm, (char*)"");
    settextstyle(DEFAULT_FONT, HORIZ_DIR, 3);
 
    std::cout << "Start ...\n";
 
    ///-----------------------|
    /// Объекты.              |
    ///-----------------------:
    Object  object0;
    Object  object1("Собака");
    Object  object2("Кот");
 
    ///-----------------------|
    /// Двигатель.            |
    ///-----------------------:
    Mover    movers[3];
 
    ///-----------------------|
    /// Даём машрут.          |
    ///-----------------------:
    {       ///-------------|
            /// Мансуров.   |
            ///-------------:
            movers[0].mymap =
            {
                {   { 1, 0}, {BORDER, BORDER}, 5
                },
                {   {-1, 1}, {BORDER, BORDER}, 1
                },
                {   { 1, 0}, {BORDER, BORDER}, 5
                },
                {   {-2,-1}, {BORDER, BORDER}, 1
                }
            };
 
            ///-------------|
            /// Собака.     |
            ///-------------:
            movers[1].mymap =
            {
                {   { 0, 1}, {BORDER, BORDER}, 1
                },
                {   { 1,-1}, {BORDER, BORDER}, 2
                },
                {   {-1, 0}, {BORDER, BORDER}, 3
                },
                {   {0,  1}, {BORDER, BORDER}, 4
                }
            };
 
            ///-------------|
            /// Кот.        |
            ///-------------:
            movers[2].mymap =
            {
                {   { 1, 1}, {BORDER, BORDER}, 1
                },
                {   { 0,-1}, {BORDER, BORDER}, 3
                },
                {   {-1, 0}, {BORDER, BORDER}, 1
                },
                {   { 0, 1}, {BORDER, BORDER}, 3
                },
                {   { 1,-1}, {BORDER, BORDER}, 3
                }
            };
 
            //movers[0].debug();
    }
 
    ///-----------------------|
    /// Что двигаем?.         |
    ///-----------------------:
    movers[0].set_obj(&object0);
    movers[1].set_obj(&object1);
    movers[2].set_obj(&object2);
 
    std::cin.get();
 
    ///-----------------------|
    /// Поехали...            |
    ///-----------------------:
    while(true)
    {
        cleardevice();
 
        for(auto& mover : movers) mover.go();
 
        delay    (20);
    }
 
    ///-----------------------|
    /// Пауза.                |
    ///-----------------------:
    std::cin.get();
    closegraph  ();
}

(помехи из-за оптимизации гифки)
1
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
17.04.2024, 15:53
Обновил код (движущийся текст - системное время с точностью до десятых долей секунды; изменяется цвет фона и текст движется "случайно" между девятью точками):
C++
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
void TForm1::MoveText(String text, String from, String to, double step, int delay)
{
  const int n = 9;
 
  int text_w = Canvas->TextWidth(text), text_h = Canvas->TextHeight(text),
      x1, y1, x2, y2, xw = ClientWidth - text_w, yh = ClientHeight - text_h;
  String dir[n] = {"NW", "NE", "SW", "SE",    "W",    "N",    "E",    "S",    "C"};
  int      x[n] = {   0,   xw,    0,   xw,      0, xw / 2,     xw, xw / 2, xw / 2},
           y[n] = {   0,    0,   yh,   yh, yh / 2,      0, yh / 2,     yh, yh / 2};
 
  bool a = false, b = false;
  for (int i = 0; i < n; i++)
  {
    if (from == dir[i] & !a)
      x1 = x[i], y1 = y[i], a = true;
    if (to == dir[i] & !b)
      x2 = x[i], y2 = y[i], b = true;
    if (a & b)
      break;
  }
 
  double dist_x = x2 - x1, dist_y = y2 - y1,
         dist = hypot(dist_x, dist_y), angle = atan2(dist_x, dist_y),
         tmp_x, tmp_y, sin_a = sin(angle), cos_a = cos(angle);
  for (double j = 0; j <= dist; j += step)
  {
    Update();
    tmp_x = x1 + j * sin_a;
    tmp_y = y1 + j * cos_a;
    text = TimeToStr(Time()) + "." + String(MilliSecondOf(Time()) / 100);
    Canvas->TextOutW(tmp_x, tmp_y, text);
    SleepEx(delay, true);
    Application->ProcessMessages();
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonClick(TObject *Sender)
{
  Refresh();
  Button->Visible = 0;
  Tag = 1;
 
  randomize();
 
  const int num = 9;
  String text, from, to,
         dir[num] = {"NW", "NE", "SW", "SE", "W", "N", "E", "S", "C"};
 
  double step = 1;
  int delay = step * 4;
 
  int tmp = random(num);
  from = dir[tmp];
  int count = 1000;
  for (int i = 0; i < count; i++)
  {
    if (!Tag)
      break;
 
    for (int j = 0; j < num; j++)
      if (from == dir[j])
      {
        tmp = j;
        break;
      }
    to = dir[(tmp + random(num - 1) + 1) % num];
    text = TimeToStr(Time()) + "." + String(MilliSecondOf(Time()) / 100);
    Color = TColor(rand());
    MoveText(text, from, to, step, delay);
    from = to;
  }
 
  Button->Visible = 1;
  Tag = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
  Tag = 0;
}
1
Just Do It!
 Аватар для XLAT
4220 / 2685 / 656
Регистрация: 23.09.2014
Сообщений: 9,241
Записей в блоге: 3
18.04.2024, 07:38
gunslinger, а кресты какой стандарт тянут у тя в борланде?
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
18.04.2024, 22:56
XLAT, честно сказать, даже не знаю. Не интересовался (нет необходимости).
Если что, билдер такой:

И в нем даже нет таких настроек (видимо, он слишком "старый"): Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23).
1
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
18.04.2024, 23:37
P. S.: подозреваю, что (максимум?) C++11 поддерживается (но это на уровне моих домыслов).
1
Just Do It!
 Аватар для XLAT
4220 / 2685 / 656
Регистрация: 23.09.2014
Сообщений: 9,241
Записей в блоге: 3
18.04.2024, 23:46
gunslinger,
я тут нечаянно заколбасил строчный калькулятор
в тему Определить, принадлежит ли точка с координатами (x; y) заштрихованной области
и подумал, насколько легко ты бы мог его вкрутить в борланд форму.
1
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
19.04.2024, 00:03
Выглядит весьма неплохо, но идея состоит в обратном. Не по условию рисовать область, а исходя из картинки определять (программно) условие попадания в область (которую тоже еще надо как-то определить по картинке).
На данный момент моя программа тоже строит область по условию, но только с той лишь разницей, что оно "вшито" в код, а не прописывается произвольно в поле ввода.
P. S.: и что-то "вкручивать" в билдер мне лень. Ты вполне можешь сам свою программу (с)делать. Зачем тебе я со своим билдером?
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.04.2024, 11:45
Цитата Сообщение от gunslinger Посмотреть сообщение
честно сказать, даже не знаю.
Соответствие стандартам C++11
В C++Builder XE5 реализована поддержка новейших стандартов C и C++, в том числе C++98, C++TR1 и C++11, а также стандартов ANSI C, ISO C, C99 и C11. Благодаря строгой поддержке стандартов вы сможете без труда создавать, обслуживать, повторно использовать и расширять свой код. Сосредоточьте свои навыки и ресурсы на проверенном стандартном языке, который ускоряет вывод приложений на рынок и продлевает срок их службы.
Ещё, XE5 - последняя версия работающая под Windows XP.
1
Just Do It!
 Аватар для XLAT
4220 / 2685 / 656
Регистрация: 23.09.2014
Сообщений: 9,241
Записей в блоге: 3
20.04.2024, 09:29
последняя версия работающая под Windows XP
посоны, на планете 9 ярдов людей,
xp осталась тока у 2 с половиной человека...
так, будем же писать проги для 9 ярдов,
а тем 2'ум пожелаем обновить комп1 и комп2...
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6334 / 3067 / 1054
Регистрация: 01.06.2021
Сообщений: 11,726
20.04.2024, 10:21
Цитата Сообщение от XLAT Посмотреть сообщение
xp осталась тока у 2 с половиной человека...
не ну всякие причины бывают. Например, знаю человека, который остается на Vista ради одной игры
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6334 / 3067 / 1054
Регистрация: 01.06.2021
Сообщений: 11,726
20.04.2024, 10:22
gunslinger, почему не поставишь бесплатный C++Builder 11 Community Edition?
1
21.04.2024, 10:10

Не по теме:

Royal_X, да я и не слышал о таком. Может как-нибудь установлю, но мне пока вполне хватает того, что есть.
Хотя вспоминаю, что устанавливал 10.1 Berlin, но она мне не понравилась чем-то.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2024, 10:10

Движение графики или анимация
Какие виды есть кода для движение графики(простые фигуры) или анимации (без изпользования аппелата ). Eсть примеры

Как поменять цвет отрезка после каждого полного оборота? (Графики и движение)
Здравствуйте!В задаче обеспечить плавное движение заданных объектов, самостоятельно подбирая для этого соответствующие параметры...

Найти все функции f(x), графики графики которых проходт через точку В, если:
f'(x)=4{x}^{2}-9{x}^{-2}, B(3;-2)

Почему не строятся трехмерные графики и графики поверхностей?
Mathcad, version 14.0.0.163 Прошу помощи! Не строятся графики поверхностей, вообще никакие. Ни через горячие клавиши, ни через меню....

Возможно ли сделать движение зрачков, реагирующее на движение какого-либо объекта
Вообщем благодаря модеру удалось разукрасить картинку,за что ему спасибо. Нужна анимация для нее. Возможно ли сделать движение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru