![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Relrin |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 64 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сейчас стараюсь решить задачку в графике, однако возникло масса проблем с кодингом.
Условие следующее: ![]() ![]() Я представил эту ситуацию так: ![]() Каждая сторона имеет свой номер(чтобы было проще соориентироваться, при отрисовке линий). Проблемы которые возникли: 1) Отрисовка этих линий в одном треугольнике (начинаем с треугольника FOA) 2) "Отзеркаливание" этих линий, вместо того, чтобы рисовать их с нуля. (в нашем примере, нарисовав линии в треугольнике FOA, рисуем зеркально линии в OAB, относительно OA; после этого, опять зеркально рисуем для треугольника BOC, относительно BO). Для отрисовки линий, пока трудно представляю как выбрать некоторые "случайные" координаты для первой точки линии на одной стороне, а после, взять другие "случайные" на одной из двух других. Пока что пришло на ум, через case как-то выделять эти стороны, обращение к ним, если одна из них выбрана. С отзеркаливанием линий, это по-мойму самая сложная часть, поскольку возникают вопросы: а) как указать программе, какую взяли линии за "ось симметрии" б) рисовать относительно нее линии Исходный код, того, чего я смог пока сделать (Показать/Скрыть)
Сообщение отредактировано: Lapp - 18.03.2011 0:26 |
![]() ![]() |
Relrin |
![]()
Сообщение
#2
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 64 Пол: Мужской Репутация: ![]() ![]() ![]() |
Возник вопрос, относительно старой темы - калейдоскопа.
Как зарисовать каждую область, которую поделила линия. Т.е. допустим линия поделила треугольник пополам, и каждую половинку мы закрашиваем, при этом, цвета должны быть такие же в других треугольниках (т.е. симметрично)? ![]() |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Возник вопрос, относительно старой темы - калейдоскопа. Как зарисовать каждую область, которую поделила линия. Т.е. допустим линия поделила треугольник пополам, и каждую половинку мы закрашиваем, при этом, цвета должны быть такие же в других треугольниках (т.е. симметрично)? ![]() Наконец, разговор коснулся сути ![]() В твоем вопросе звучит, что ты озадачился алгоритмом заполнения. Но еще по твоему вопросу понятно, что ты еще очень слабо вник в проблему. Советую тебе попытаться полностью, с начала до конца, промоделировать этот процессс на бумаге. Сначала ограничься рисованием одного сектора (об отражениях подумаешь потом). Ты - компьютер. Берешь лист - это твой экрвн. Ты можешь: - ставить точки в определенные места; - проводить отрезки, указывая их концы; - закрашивать области, ограниченные точками одного цвета, начиная с данной точки (FloodFill). Ставь точки, проводи отрезки (всякий раз думая, как задать их координаты). Закрашивай области (продумывай, как задать координаты начальной точки). Попробуй выработать алгоритм и записать его на бумаге. Вот когда это все сделаешь - тогда принимайся за прогу. А до того - и не пытайся )). Показывай свое словесное описание алгоритмя тут. Будем разбираться. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 19:33 |