![]() |
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 Пол: Мужской Репутация: ![]() ![]() ![]() |
1. Я не работал бы в декартовой системе координат. Гораздо проще сделать это всё в полярной. Представь себе, что у тебя каждый треугольник - это два угла (отклонения от нулевого угла ПСК двух сторон, которые радиусы), и дистанция от центра (для того, чтоб знать, какой длины радиусы, собственно). То есть, по этим трем числам ты однозначно рисуешь любой треугольник. 2. Разбиение треугольника линиями. Развиваем мысль относительно ПСК, каждая линия - это еще одна дистанция (если конец отрезка лежит на радиальной стороне) или еще один радиус + дистанция (если не на радиальной). Генерируешь случайным образом несколько пар чисел, и по ним рисуешь линии. 3. А теперь - самое интересное: как зеркально отразить линии от какой-то оси? А просто... ![]() Идея интересна, немного на бумаге набросал, покрутил - получается красиво. Однако, не сложнее ли будет такое программировать(особенно если учитывать, что с таким... "полярным" программированием встречаюсь впервые, сколько пробую кодить)? Пока все же попробую еще что-нибудь придумать с декартовой системой... ![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 19:49 |