Нарисовать калейдоскоп, Проблемы с кодингом |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Нарисовать калейдоскоп, Проблемы с кодингом |
Relrin |
17.03.2011 22:39
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 64 Пол: Мужской Репутация: 0 |
Сейчас стараюсь решить задачку в графике, однако возникло масса проблем с кодингом.
Условие следующее: Я представил эту ситуацию так: Каждая сторона имеет свой номер(чтобы было проще соориентироваться, при отрисовке линий). Проблемы которые возникли: 1) Отрисовка этих линий в одном треугольнике (начинаем с треугольника FOA) 2) "Отзеркаливание" этих линий, вместо того, чтобы рисовать их с нуля. (в нашем примере, нарисовав линии в треугольнике FOA, рисуем зеркально линии в OAB, относительно OA; после этого, опять зеркально рисуем для треугольника BOC, относительно BO). Для отрисовки линий, пока трудно представляю как выбрать некоторые "случайные" координаты для первой точки линии на одной стороне, а после, взять другие "случайные" на одной из двух других. Пока что пришло на ум, через case как-то выделять эти стороны, обращение к ним, если одна из них выбрана. С отзеркаливанием линий, это по-мойму самая сложная часть, поскольку возникают вопросы: а) как указать программе, какую взяли линии за "ось симметрии" б) рисовать относительно нее линии Исходный код, того, чего я смог пока сделать (Показать/Скрыть)
Сообщение отредактировано: Lapp - 18.03.2011 0:26 |
volvo |
18.03.2011 17:20
Сообщение
#2
|
Гость |
Цитата после чего нужно будет только изменить их координаты, путем поворота на 60 градусов по часовой/против часовой стрелки. То есть, ты пришел к тому же, о чем я написал тебе во втором посте, но делаешь это пока сложным методом... Ничего, через пару дней тебе в голову придет идея, что можно не хранить координаты X, Y для начала/конца отрезка, а сделать что-то вроде:type Тут же можно генерировать и вторую точку отрезка, только надо следить, чтобы их поля Position не были равны, иначе линия отрезок сольется с одной из сторон треугольника... Видишь, насколько все проще? Если подумать - то не надо будет даже ничего добавлять ни к чему для отзеркаливания: допустим, ты пронумеровал все треугольники от 1 до N, и сгенерировал несколько отрезков для треугольника №1. Тогда во все нечетные можно просто отображать те же отрезки, а в четные - поменяв Position с REL на RER, а для NRE - изменив угол с Phi на Angle - Phi... И всё, можно сразу всё отрисовать, буквально за 1 проход... |
Текстовая версия | 5.06.2024 9:09 |