|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.01.2009, 23:59 | #1 |
Регистрация: 07.01.2009
Сообщений: 5
|
Реализация работы с пикселями:
Помогите с реализацией программы :
надо визуально показать падение луча - предполагается что он будет состоять из пикселей, и если встречается поверхность то лучик должен отразится под углом падения ( в общем по физическим законам) - как это реализовать визуально? |
08.01.2009, 00:26 | #2 |
Форумчанин
Регистрация: 04.01.2009
Сообщений: 188
|
Если все это рисовать в 2D, то падающий и отражающий луч можно задать в виде линейной функции прямой
Т.е. задать падающий луч как функция y(x)=kx+b в результате отражающий луч будет представлен функцией y(x)=-kx-b. Пример, как будут выглядеть данные прямые представлен на рисунке ниже. 1.PNG Последний раз редактировалось iankov; 08.01.2009 в 00:32. |
08.01.2009, 00:48 | #3 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
А реализация и того проще - LineTo.
|
08.01.2009, 00:54 | #4 |
Форумчанин
Регистрация: 04.01.2009
Сообщений: 188
|
|
08.01.2009, 01:03 | #5 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Вы можете использовать сколько угодно циклов. Ваше право.
Я же предлагаю два оператора LineTo - один для прямого луча, другой для отраженного. |
08.01.2009, 01:15 | #6 |
Форумчанин
Регистрация: 04.01.2009
Сообщений: 188
|
Ну я понимаю, вот и спрашиваю, пусть например падающий луч имеет функцию lineto(x2,y2) при условии что мы находимся в точке x1, y1. Вот как теперь сделать отражение этого луча? Где будут начальные координаты и какие координаты вставить в lineto() чтобы угол падения луча получился углу отражения. В принципе реально повозится, но напряжно =)
|
08.01.2009, 02:18 | #7 |
Бредовый
Форумчанин
Регистрация: 15.11.2008
Сообщений: 285
|
Можно поинтересоваться: линия от которой луч будет отражаться будет горизонтальной или произвольной?
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
|
08.01.2009, 02:42 | #8 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Это чистая геометрия, причем школьный курс. Зная высоту экрана (или параметры области, ограничивающей движение "луча"), точку соприкосновения с границей вычислить по уравнению прямой - примитивнее некуда.
А если чуток напрячься, то можно и уравнение для отраженного "луча" родить... Только я не по этому делу - я стараюсь научить думать самостоятельно, а не гоняться за готовыми решениями, которых по этой самой причине и не даю. Если вы не хотите думать самостоятельно, нужно было тему размещать в разделе "Помощь студентам", там собираются (в основном) те, кто не хочет думать и научиться чему-то, а хочет только получить готовый халявный результат, отчитаться перед преподом и вернуться на форум только когда вновь придет время что-нибудь сдавать, за очередной порцией халявы. |
08.01.2009, 02:56 | #9 |
Бредовый
Форумчанин
Регистрация: 15.11.2008
Сообщений: 285
|
Mihali4, на счет помощи студентам я полностью согласен.
Ну если тему создали то нужно её развить мне кажется. Если отражаться луч будет об горизонтальную поверхность то это совсем просто, а если нет... И еще можно задавать параметры используя коэффициент наклона луча, а можно начальные и конечные точки задавать. Если у кого есть готовый пример выложите и всё.
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
|
08.01.2009, 16:58 | #10 |
Регистрация: 07.01.2009
Сообщений: 5
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Для облегчения работы с TFS - приложение для работы над дефектами и задачами | Аякс | Софт | 1 | 18.03.2009 11:43 |
Реализация таблицы | Patriot1 | БД в Delphi | 12 | 12.12.2008 16:49 |
Реализация конфигуратора | BlackOmen | Общие вопросы Delphi | 3 | 30.05.2008 17:12 |
Реализация тестов | aleksei111 | Общие вопросы Delphi | 2 | 20.05.2008 12:15 |
реализация SSL | Prowler | Работа с сетью в Delphi | 1 | 18.12.2007 13:38 |