Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Паспорт HDD https://www.cyberforum.ru/ cpp/ thread278914.html
Кто-нибудь знает можно ли написать программу на C++, которая читала бы паспорт жесткого диска и выводила информацию на экран?? Если можно, то подскажите как...
C++ Указать директорию
Здравствуйте. Пишу программу в борланде 6, в которой надо указать путь, из которого программа будет брать фаилы. С помощью чего это можно сделать? Видел есть DirectoryListBox но как он работает, не...
Указатель this C++
как в windows Forms // горячую клавишу?
C++ Лексический анализатор есть задание: Входной язык содержит последовательность описаний массивов в соответствии со спецификацией языка Паскаль, разделенных символом ; (точка с запятой). Считать, что массивы могут содержать... https://www.cyberforum.ru/ cpp/ thread277583.html
C++ Универсальный интерфейс для ввода https://www.cyberforum.ru/ cpp/ thread277467.html
Написать библиотеку, с помощью которой можно легко организовать интерфейс через командную строку для своей разработки. Данная задача не предусматривает организации псевдографического оконного...
Как лучше делать командную строку? C++
Задача обеспечить текстовый ввод с клавы не только значений переменных, но и команд. В гуях обычно делаются меню и экранные кнопки, а я хочу, чтоб в моей приладе можно было юзить текстовый ввод...
Можно ли инстанцирование класса прописать в самом классе? C++
Можно ли инстанцирование класса прописать в самом классе?
C++ Жутко туплю на ACMP Два года назад решал задачу 151 на ********... Щас не могу вспомнить, чего не хватает и что лишнее... Принцип: Проверяю все компоненты связности на двудольность и смотрю, чтобы их число было не более... https://www.cyberforum.ru/ cpp/ thread276074.html
C++ Программа управления аккаунтами https://www.cyberforum.ru/ cpp/ thread276034.html
Здраствуйте. У меня есть задача которую я немогу решить. Нада сделать в этой задаче чтобы можна было создавать, удалять, изменять аккаунты. Я сделал только управлением одного аккаунта, а мне нужно...
C++ Калькулятор разработать кулькулятор, выполняющий арифметические операции над римскими цифрами, обеспечивающий перевод из римской системы в десятичную систему счисления https://www.cyberforum.ru/ cpp/ thread275850.html
4194 / 1787 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
20.04.2011, 08:13 0

Метод трассировки луча

20.04.2011, 08:13. Просмотров 8065. Ответов 12
Метки (Все метки)

Ответ

Трассировка лучей к этой задаче не относится. Трассировка лучей - это расчёт хода световых лучей в 3D сцене. Тебе же нужен геометрический луч, отличающийся от светового луча тем, что он прямой всегда и не подвержен ни рефракции, ни отражению, ни поглощению. Это совсем другое понятие луча и другие алгоритмы. Геометрический луч есть полупрямая, он описывается уравнением прямой и неравенством. Я предлагаю взять параметрическое уравнение прямой, тогда лучь описывается так: https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}  x=x_0+k_x*t  \\   y=y_0+k_y*t  \\  t\geq 0 \end{cases}. Стороны прямоугольника - это отрезки, то есть тоже части прямых, они описываются так:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}  x=x_0+k_x*t  \\   y=y_0+k_y*t  \\  t\geq 0 \\  t\leq 1 \end{cases}.
Тогда для каждого отрезка получаем систему: https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}  x=xl_0+kl_x*tl  \\   y=yl_0+kl_y*tl  \\  x=xo_0+ko_x*to  \\   y=yo_0+ko_y*to  \\  to\geq 0 \\  tl\geq 0 \\  tl\leq 1 \end{cases}. Число точек должно быть не чётным, а для выпуклого многоугольника точка должна быть ровно одна, но если попадёшь в угол, то такая точка принадлежит двум отрезкам и может сосчитаться дважды. Придумай, как надёжно обработать углы.

Добавлено через 4 минуты
Можно ещё так: соединить точку со всеми вершинами и сложить углы между этими отрезками. Для внутренней точки должно получиться ровно https://www.cyberforum.ru/cgi-bin/latex.cgi?360^0, но там опять надо флоат сравнивать.

Добавлено через 3 минуты
Цитата Сообщение от stark91 Посмотреть сообщение
т.е если в многоугольнике допустим 10 вершин, то надо сделать 10 проверок на пересечение?
Конечно.

Вернуться к обсуждению:
Метод трассировки луча
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2011, 08:13

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

Заполнить таблицу трассировки
Имеется блок – схема алгоритма подсчёта десятичных разрядов в заданном положительном числе N. ...

Заполнить таблицу трассировки
Имеется блок – схема алгоритма подсчёта десятичных разрядов в заданном положительном числе N. ...

Лучевой алгоритм трассировки
Приветствую вас, коллеги, встал такой вопрос. Нужна реализация лучевого алгоритма трассировки на...

Алгоритм надежной трассировки
надо реализовать программу, которая ищет путь между двумя точками используя алгоритм надежной...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.