Интерессная задача о машинных узорах, нашел в книге, а с реализацией на Паскале возникли проблемы, если у кого-то есть интерес к этой задаче поделитесь своими соображениями.
Собственно условие:
"Создать систему, которая реализует разнообразные машинные узоры, которые используются в качестве заставок на базе элементов построенных таким образом:
1) опрос типа многоугольника у пользователя : треугольник, квадрат, ромб, пятиугольник и т.д.
2) опрос размера стороны: p
3) опрос коэфициента 0<A<1, с помощью которого стороны фигуры будут разделяться точкой: p*A
4) Вычислить точку каждой из сторон многоугольника и соединить полученные точки отрезками
5) Повторить рекурсивно п.4 столько раз, сколько разрешает экран."
Книга в которой я это "надыбал" Ю.В. Котов "Как рисует машина". Наука, 1988 г.
Как видно задача комплексная, буду рад увидеть любые предложения и подсказки по ее решению и реализации.
Заранее спасибо.
Цитата
3) опрос коэфициента 0<A<1, с помощью которого стороны фигуры будут разделяться точкой: p*A
неясно что имеется ввиду...
и еще... все фигуры, выведенные на экран одинаковы?
Должны ли они быть расположенны вплотную друг к другу?
Это те вопросы, на которые надо ответить перед началом процесса алгоритмизации...
arsen86
Если я правильно понял, то должно получиться что-то типа вот этого ?
Хм, кстати на рисунке
volvo, наблюдается "обман зрения"...
если смотреть в центр, то кажется, что внешние квадрат имеет не паралельные грани относительно окна браузера...
Относительно п.3
так он описан в задачи, я понимаю, что координаты точки определяются концом отрезка длинной p*A, который нужно откладывать от определенного начала стороны, начало наверное можно выбрать произвольно
Фигуры, как я понял, предлагаются на выбор, то есть одновременно на экране отображается только 1 фигура, с определенной длинной стороны, длинна, в свою очередь, должна задаватся отдельно для каждой фигуры.
volvo
ты правильно понял, во всяком случае я понял тоже самое :)
Digitalator
5.11.2004 22:21
Я тоже все так понял

тока
Цитата
Повторить рекурсивно п.4 столько раз, сколько разрешает экран."
Т.е. надо много выводить фигурок одна в одной, пока не будет вырождение в точку, а такое обязательно когда-нибудь наступит, т.к. площадь каждой следующей фигуры меньше предыдущей.
Только надо писать без рекурсии (какая противная вещь) т.к. при A скажем 0.9999 будет глюк

, а так ничего сложного - координаты по нач. точек легко вычислются, при некотором знании тригонометрии. Далее можно легко находить координаты точек каждой следующей фигурки, для этого нам потребуется знание уравнения прямой... считать разности координат, пока они не станут меньше 0.5 (вырождение) тоже не составляет проблем.....
Может найдется герой, который напишет для этого всего програмку
Программа написана и добавлена в FAQ: Занимательная графика
Digitalator
5.11.2004 22:33
volvo - Вы ГЕРОЙ!
написать такую програмку, пусть несложную, но кода-то не десять строк

.. да еще и за просто так, да еще и незнакомоу челу - это Геройство

Мне его всегда нехватало - идею решения подсказать всегда могу, а вот писать полностью прогу... :no:
Я мягко говоря в шоке !
Спасибо ОГРОМНОЕ.
Даже не ожидал на такое чудо, только спросил, а уже работающая программа, вот только одна проблемма - я с обьектами почти не работал.
to volvo
а как ты ее собираешся расширять ?
еще раз ОГРОМНОЕ СПАСИБО.
Цитата
а как ты ее собираешся расширять ?
:o
Можно попробовать одновременно работать с несколькими типами фигур, добавить интерфейс (кстати, граф. интерфейс я делал лет 5 назад, нужно его только добавить...), перейти в 3D наконец...

Посмотрим.
Цитата
я с обьектами почти не работал
Когда-то же нужно начинать !!! ;)
Кстати, очень мощное средство.
думаю, что в 3D немного потеряется наглядность и красота
а вот интерфейс не помешает, но это дело техники и вкуса
а за чем тогда обьекты ?
arsen86
Попробуй сделать это все без ООП... И я посмотрю, у кого получится проще и чья программа будет более расширяемой. ;)
Я думаю volvo надо повысить рейтинг за активную помощь!!! :yes:
to volvo
я не спорю, что твоя программа будет более расширяемая, но эта программа, как бы это сказать.... "без будущего", наврядли кто-то будет ее расширять, дополнять, она -- просто интересна в своей наглядности и "бессмыслености"
Это ты напрасно ... А для обучающих целей (например, для форума... да и братишка у меня программированием занитересовался... )?
Да и просто для того, чтобы создать законченный проект ...
Ну что ж, сколько программистов, столько и программ.
Может быть ты и прав :yes:
В любом случае спасибо, ты мне очень помог :p4:
volvo действительно герой!
Цитата
Мне его всегда нехватало - идею решения подсказать всегда могу, а вот писать полностью прогу...
точно! :D
Цитата
Мне его всегда нехватало - идею решения подсказать всегда могу, а вот писать полностью прогу...
Я думаю volvo надо повысить рейтинг за активную помощь!!! :yes:
уже повысил :yes:
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.