Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 31.05.2021
Сообщений: 9
GraphABC

Увеличивающиеся круги в PascalABC.NET

02.06.2021, 14:32. Показов 2306. Ответов 16

Студворк — интернет-сервис помощи студентам
Помогите пж срочно нужно прям. Просто случайное количество кругов на экране появляются и увеличиваются, если оба круга касаются друг друга то круг с меньшим радиусом пропадает.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.06.2021, 14:32
Ответы с готовыми решениями:

Переделать код PascalABC -> PascalABC.NET
Вот код на PascalABC: Uses Utils; var i: integer; mb, b: integer; begin ClrScr; i := 3;

В чем разница PascalABC.net и PascalABC
Скажите в чем разница PascalABC.net И PascalABC. Помню когда-то давно программы работающие в PascalABC у меня не работали в .net

Переделать программу из PascalABC в PascalABC.NET
program pr1 uses crt; const n=10; var i,k1,k2,c:integer; a,b:array of integer; BEGIN k1:=0; k2:=0; for i:=1 to n do begin ...

16
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
02.06.2021, 15:20
т.е. за три дня ты ничего так и не сделал...
0
0 / 0 / 0
Регистрация: 31.05.2021
Сообщений: 9
02.06.2021, 15:30  [ТС]
я хз как делать что бы при касании контуров меньший исчезал
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
02.06.2021, 15:46
Цитата Сообщение от Kulebyaka_0101 Посмотреть сообщение
я хз как делать что бы при касании контуров меньший исчезал
то есть
Цитата Сообщение от Kulebyaka_0101 Посмотреть сообщение
случайное кол-во кругов на экране появляются и увеличиваются
То есть эту часть задачи ты уже сделал?
Ок, тогда давай код, я сделаю так, чтобы при соприкосновении меньший исчезал

Добавлено через 1 минуту
а вообще, бери код отсюда - Исчезновение круга при соприкосновении с другим
0
0 / 0 / 0
Регистрация: 31.05.2021
Сообщений: 9
02.06.2021, 16:07  [ТС]
ну есть, но он такое себе просто ток начал графику учить
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
02.06.2021, 16:31
Лучший ответ Сообщение было отмечено Kulebyaka_0101 как решение

Решение

Pascal
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
uses GraphWPF;
const n=10;
type oType=class
  x,y,r,d:Real;
  procedure NewCircle;
  begin
    x:=Random(10.0,Window.Width-10);
    y:=Random(10.0,Window.Height-10);
    r:=Random(1.0,5);
    d:=Random(0.1,1.0);
  end;
  constructor:=NewCircle;
  procedure Step(o : array of oType);
  begin
    foreach var c in o do
      if c <> Self then
        if (x-c.x)**2+(y-c.y)**2 < (r+c.r)**2 then
          if r < c.r then
            begin
              NewCircle;
              Exit;
            end;
    Circle(x,y,r);
    r+=d;
    if r>min(Window.Width,Window.Height) then
      NewCircle;
  end;
  class function CreateArray(n : Integer) : array of oType;
  begin
    Result:=ArrGen(n,x->New oType);
  end;
end;
begin
  var o:=oType.CreateArray(n);
  BeginFrameBasedAnimation(()->foreach var c in o do c.Step(o));
end.
2
0 / 0 / 0
Регистрация: 31.05.2021
Сообщений: 9
02.06.2021, 16:35  [ТС]
Благодарю !
0
0 / 0 / 0
Регистрация: 31.05.2021
Сообщений: 9
03.06.2021, 15:55  [ТС]
только , вопрос один есть, нужно что бы они не выходили за границы окна ,мы прошли только GraphABC. и по нему нам нужно было сделать это , а как в graphWPF я без понятия
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
03.06.2021, 16:39
Цитата Сообщение от Kulebyaka_0101 Посмотреть сообщение
нужно что бы они не выходили за границы окна ,мы прошли только GraphABC. и по нему нам нужно было сделать это
можно переделать пример, который тебе JuriiMW дал.

и на это даже моих скудных познаний хватит.
такой код подойдёт?
Pascal
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
uses GraphABC;
const n=10;
type oType=class
  x,y:Integer;
  r,d:real;
  procedure NewCircle;
  begin
    x:=Random(10,Window.Width-10);
    y:=Random(10,Window.Height-10);
    r:=Random(1.0,5);
    d:=Random(0.1,1.0);
  end;
  constructor:=NewCircle;
  procedure Step(o : array of oType);
  begin
    foreach var c in o do
      if c <> Self then
        if (x-c.x)**2+(y-c.y)**2 < (r+c.r)**2 then
          if r < c.r then
            begin
              NewCircle;
              Exit;
            end;
    Circle(x,y,trunc(round(r)));
    r+=d;
    if (r>min(Window.Width,Window.Height)) or (x-r<0) or (y-r<0)
               or (x+r>Window.Width) or (y+r>Window.Height) then
      NewCircle;
  end;
  class function CreateArray(n : Integer) : array of oType;
  begin
    Result:=ArrGen(n,x->New oType);
  end;
end;
begin
  var o:=oType.CreateArray(n);
  while True do begin
    LockDrawing; // это чтобы было без мерцания.
    Window.Clear;
    foreach var c in o do c.Step(o);
    redraw;
    sleep(20)
  end;
end.
0
0 / 0 / 0
Регистрация: 31.05.2021
Сообщений: 9
03.06.2021, 16:56  [ТС]
а что бы они не пропадали когда касаются границы а отталкивались (не двигались а просто отталкивались)? или так не выйдет?
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
03.06.2021, 17:37
Цитата Сообщение от Kulebyaka_0101 Посмотреть сообщение
а что бы они не пропадали когда касаются границы а отталкивались (не двигались а просто отталкивались)? или так не выйдет?
почему не выйдет - выйдет. Если только ты код программы изменишь так, чтобы они не пропадали, а отталкивались (кстати, я не понимаю, что означает - "отталкивались" - тут в программе все круги стоят на месте, никуда не движутся, центр любого круга строго стоит на одном и том же месте, увеличивается только радиус круга. Так в чём заключается "отталкивание" ?)
0
0 / 0 / 0
Регистрация: 31.05.2021
Сообщений: 9
03.06.2021, 17:46  [ТС]
я имел ввиду что бы центр круга смещался и он увеличивался оставаясь в окне не выходя за рамки
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
03.06.2021, 17:56
Цитата Сообщение от Kulebyaka_0101 Посмотреть сообщение
я имел ввиду что бы центр круга смещался и он увеличивался оставаясь в окне не выходя за рамки
смещался куда и на сколько?
короче, вот здесь
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
Pascal
26
27
28
if (r>min(Window.Width,Window.Height)) or (x-r<0) or (y-r<0)
               or (x+r>Window.Width) or (y+r>Window.Height) then
      NewCircle;
напиши условие изменения переменных x и y (это координаты центра круга) так, как тебе надо и всё будет, как ты хочешь.
0
0 / 0 / 0
Регистрация: 31.05.2021
Сообщений: 9
03.06.2021, 19:08  [ТС]
неважно куда смещался просто эффект отталкивания был

Добавлено через 1 час 3 минуты
27 28 if (r>min(Window.Width,Window.Height)) or (x-r<0) or (y-r<0)                or (x+r>Window.Width) or (y+r>Window.Height) then       NewCircle;
А там же вроде бы новый круг создается , а как сделать что бы он просто смещался
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
04.06.2021, 09:12
Цитата Сообщение от Kulebyaka_0101 Посмотреть сообщение
а как сделать что бы он просто смещался
нужно изменять координаты центра круга, которые находятся в переменных X и Y
изменишь X и Y и круг отобразится в другом месте.
0
0 / 0 / 0
Регистрация: 31.05.2021
Сообщений: 9
07.06.2021, 14:14  [ТС]
А почему этот код на других версиях pascalABC.NET не раборает ошибку в конструкторе выдает?Если знаете напишите пж.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
07.06.2021, 15:30
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Цитата Сообщение от Kulebyaka_0101 Посмотреть сообщение
А почему этот код на других версиях pascalABC.NET не раборает
на каких - "других"?
у меня пост из #9 работает в Pascal ABC.NET версии 3.8 сборка 2873 (03.04.2021)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.06.2021, 15:30
Помогаю со студенческими работами здесь

Установится ли PascalABC.NET на систему, где установлен только .NET 4.6.1?
Привет всем. Вопрос, собственно, озвучен выше. Конкретнее: есть компьютер со свежеустановленной Win10 x64, на которой присутствует...

PascalABC.NET и Win ХР
Здравствуйте! Подскажите PascalABC.NET совместим с Win ХР? Спасибо.

Возможности PascalABC.NET
Возможно ли в PascalABC.NET создать web-приложение, например с помощью доп.программ? Если да, то как?

OpenGL в PascalAbc.Net
Искал уроки именно для этой среды,не нашел.Но все же не здался,тем более зная что он расчитан на любые платформы.Научился не многому...

Программа на PascalABC.Net
Из текстового файла, содержащего произвольный текст. Вывести на экран его содержимое и количество символов в тексте. Сформировать...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru