IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Наложение фигур
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской
Реальное имя: Антон

Репутация: -  1  +


Здравствуйте!
при написании одного из модулей программы я столкнулся с такой проблемой как наложение фигур друг на друга. Как сделать так чтоб последующая фигура рисовалась на свободном месте экрана и не накладывалась на другие?
 uses Crt, Graph;
const k=100;
var
GraphDriver, GraphMode: Integer;
X1,y1, r: Integer;ch:char;
begin
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, ' ');
if GraphResult<> grOk then
Halt(1);
repeat
ch:=readkey;
if ch=chr(13) then begin
X1 := Random(640-k)+k;
y1 := Random(480-k)+k;
r:=Random(k)+1;
circle(X1,y1,r);
end;
until ch=chr(27);
CloseGraph;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> Это твои заморочки. Оно ОБЯЗАНО отработать по изложенным выше причинам.

Причины недостаточно доказаны.

> А отработает оно за 0.0002 сек. или за 0.05 сек - это дело десятое (в данном конкретном случае)

Лишь бы раз в год оно не заработало за 50 сек.

> Проверил на своей машине: сгенерировал (без вывода на экран) 50 окружностей, в цикле. Цикл прогнал 10000 раз. А потом - полтора миллиарда раз. И в первом и во втором случае среднее время генерации всех 50 окружностей приблизительно одно и то же.

Возьми не среднее, а максимальное. А потом возьми другой ГСЧ, для него придётся доказывать всё по новой.

Это хорошо, что полтора миллиарда испытаний отработали как надо, но всё-таки само понятие случайного числа противоречит понятию алгоритма, и завязывание жизненно важных участков алгоритма на случайные числа лишает алгоритм права называться алгоритмом, поскольку делает его поведение непредсказуемым.
Ты математически можешь доказать, что алгоритм гарантировано даст нужный результат не более, чем за эн тактов процессора (или итераций цикла, или ещё каких-то условных единиц)? Нет, не можешь. Поэтому с такими алгоритмами надо быть очень осторожными. И если есть обходные пути, работающие за разумное время - то надо их искать. Иначе на этом алгоритме надо огромными красными буквами писать, что так как он основан на случайных событиях, то он ничего не гарантирует.

Добавлено через 2 мин.
> как пользоваться коммандой MouseIn для кругов и эллипсов?

Чтобы узнать, что точка с координитами mx, my попала в эллипс с центром в точке x, y и полуосями rx, ry, надо сравнить

sqr((mx-x)/rx) + sqr((my-y)/ry)

с единицей.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
ТОХА   Наложение фигур   28.03.2011 19:38
мисс_граффити   фигуры - только круги? а что делать, если свободны…   28.03.2011 20:57
ТОХА   да, только круги это просто часть моей игры на зап…   28.03.2011 21:01
volvo   Если только круги - то можно сделать uses Crt, …   29.03.2011 2:39
ТОХА   uses (sqr(C[i].X - X1) + sqr(C[i].Y - …   29.03.2011 2:55
volvo   Чего ж тут такого особенного? Чистая логика. Когда…   29.03.2011 4:44
ТОХА   точно это ж геометрия за 8 класс :)   29.03.2011 4:49
TarasBer   > repeat random... until ok; Предлагаю п…   29.03.2011 13:13
volvo   Не проблема. Только не надо мне рассказывать ,что …   29.03.2011 13:52
TarasBer   > Random - это генератор, который возвращает ра…   29.03.2011 14:05
ТОХА   смысл игры в том, что нужно запомнить какой шарик …   29.03.2011 15:31
TarasBer   > TarasBer, надеюсь я ответил на твой вопрос Н…   29.03.2011 16:16
volvo   Это твои заморочки. Оно ОБЯЗАНО отработать по изло…   29.03.2011 18:40
ТОХА   небольшой оффтоп как пользоваться коммандой MouseI…   29.03.2011 18:51
TarasBer   > Это твои заморочки. Оно ОБЯЗАНО отработать по…   29.03.2011 19:03
ТОХА   Спасибо )   29.03.2011 19:15
ТОХА   немного запутался и возникло 2 проблемы: мышь полз…   29.03.2011 21:48
hydroxychloroquine sulfate 200 m   Cialis Super Actif Plus   5.12.2021 21:51
volvo   Максимальное время различается не больше, чем на 2…   29.03.2011 23:06
ТОХА   нашел, исправил, а что делать с мышкой?   30.03.2011 1:07
TarasBer   > Максимальное время различается не больше, чем…   30.03.2011 13:30
ТОХА   мышку одолел, вопрос покажется странным но как с…   1.04.2011 2:52
volvo   Вообще самым оптимальным было бы использовать граф…   1.04.2011 21:20
ТОХА   а с помощью комманд getimage и putimage можно сдел…   1.04.2011 22:39
volvo   А ты знаешь, мне тут еще один финт в голову пришел…   1.04.2011 23:08
ТОХА   работает, правда белый цвет поменялся на голубой, …   1.04.2011 23:17
volvo   Ты б прикрепил весь файл полностью (можно в приват…   2.04.2011 0:01
ТОХА   ок в приват скину, а то при защите найдут проект м…   2.04.2011 0:05
volvo   Что-то я не понял, чего ты творишь... Вот тут: все…   2.04.2011 0:55
ТОХА   модуль мыши просто из FAQ брал, как я и предполог…   2.04.2011 1:02
ТОХА   ошибка в buttonpress это 100%, изменил условие нач…   2.04.2011 1:46
volvo   Так... Нашел DosBox с шестым Турбо-Паскалем... Вот…   2.04.2011 1:50
ТОХА   Эврика :) все работает, буду до конца вечера тести…   2.04.2011 2:15
andriano   Действительно, стоит изменить лишь одну константу…   2.04.2011 18:18
volvo   А ты не меняй, и алгоритм бесконечным не будет. Ес…   2.04.2011 18:46
ТОХА   защитил проект сегодня удачно :) всем спасибо за п…   2.04.2011 20:31
Lapp   кому интересно что получилось прикладываю проект, …   3.04.2011 6:09
ТОХА   я не студент :) учусь в 10 классе)   3.04.2011 16:51
is gabapentin a controlled subst   Compro Viagra Poco Prezzo Mexico   6.12.2021 3:44


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.05.2024 5:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name