|
|
|
Помогите с лабой
|
|||
|---|---|---|---|
|
#18+
День добрый. Делаю лабу на C и не могу решить один вопрос, помогите советом или готовым примером. Задание: при запуске программы должны появляться некие буквы, в рандомном месте с рандомным цветом, при нажатии неких клавиш в рандомном месте должны появляться различные графические элементы (точки, эллипсы, круги, линии и тп), причем эти графические элементы не должны пересекать область с буквами. На данный момент у меня возникла проблема с линиями, не могу сообразить как реализовать, чтобы линия не пересекала область с буквами. Получается, что линия рано или поздно все равно пересекает область с буквами - ссылка на скрин . Буду рад любой помощи с вашей стороны :) Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 20:22:31 |
|
||
|
Помогите с лабой
|
|||
|---|---|---|---|
|
#18+
Для начала надо расчитать прямоугольник (bounding box) который ограничивает буквы. Пускай это будет BBoxText. Для его расчёта должна быть стандартная ф-ция. Либо ты посчитаешь приблизительно (на глаз). Такой-же прямоугольник расчитать для случайной линии BBoxLine. Это легко. Его два угла всегда совпадают с координатами линий. Тогда перед рисованием проверяешь если BBoxText в пересечении с BBoxLine даёт непустое множество то линию рисовать не надо. Проверять пересечение легко. Если Код: plaintext 1. 2. 3. Это грубый алгоритм. Линия может более красиво огибать прямоугольник. Но для твоей лабы и грубая проверка сойдет. Для круга и точки - тоже самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2010, 21:19:34 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36532677&tid=1343802]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
227ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 502ms |

| 0 / 0 |
