Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2013, 17:00   #1
Weyner
Пользователь
 
Регистрация: 19.10.2010
Сообщений: 25
Восклицание Обрезание луча по границам прямоугольника

Всем привет, у меня такая проблемка)
Дана задача:

вот ссылка на программу http://rghost.ru/45031583

Дана прямоугольная область. Внутри области расположены «прожекторы». Каждый «прожектор» характеризуется цветом, точкой вращения, направлением и скоростью вращения. «Прожектор» отображается в виде закрашенной фигуры, ограниченной двумя линиями, выходящими из точки вращения под углом ±10° от текущего направления «взгляда», а также границами области, попавшими в пересечение с этими линиями (ограничение построения фигуры по границе области должно быть обеспечено программным кодом, а не свойствами визуальных компонентов). Предусмотреть добавление и удаление «прожекторов», изменение скорости и направления вращения.

Преподаватель мой придераеться к этому:
а также границами области, попавшими в пересечение с этими линиями (ограничение построения фигуры по границе области должно быть обеспечено программным кодом, а не свойствами визуальных компонентов).

т.е. когда попадает луч на угол, появляются 4 точки обрезания, когда попадает на сторону прямоугольник, то получаются 3 точки. Код
Код:
RayPoints[2] = RayPoints[3];
if (angle >= 35 && angle <= 55)
{ RayPoints[2] = new Point(maxX - border, maxY - border); }
if (angle >= 125 && angle <= 145)
{ RayPoints[2] = new Point(maxX - border, border); }
if (angle >= 215 && angle <= 235)
{ RayPoints[2] = new Point(border, border); }
if (angle >= 305 && angle <= 325)
{ RayPoints[2] = new Point(border, maxY - border); }
Вот как выглядит все это:




говорит, что не правильно.
Помогите, люди добрые, заколебался чес слово уже)))

Последний раз редактировалось Weyner; 10.04.2013 в 17:06. Причина: Надо переправить
Weyner вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[WPF] Выравнивание по границам coNsept WPF, UWP, WinRT, XAML 2 09.02.2012 20:35
Обратный ход луча по горизонтали 04h andy301086 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 23.12.2011 12:56
Обрезание Аудиофайла Den7656 Компоненты Delphi 0 14.12.2011 18:40
Обрезание строки dedyshka HTML и CSS 6 26.03.2010 13:52
Отражение луча Illusionist Общие вопросы Delphi 3 30.05.2009 23:20