где косяк в функции пересечения луча и конуса (Python + линал :)
В подобных случаях поступают следующим образом: рисуешь какой-нибудь простецкий конус на бумаге, прикидываешь, что там чему должно быть равно. Вгоняешь тест, если результат неправильный — отлаживаешь по шагам.


те косяк алгебраический...
Поможите, - где косяк в алгебре?
если косяк в алгебре, то надо постить алгебру, т.е. формулы в чистом виде, а не в питоне

есть такой метод Рисовал, да - по шагам сложно. Вроде формулы правильные а получается фигня В смысле программинг тут наверное ни при чем - я походу на бумаге неправильно решил. Забыл уж этот линал нафиг.проверь максимально простые(вырожденные) случаи
например, конус в нуле радиуса 1,
лучи, проходящие через ноль
лучи, параллельные разным осям
offtop
[pt[x] for x in filter(lambda x:self.inrange(xp)]
вообще-то list comprehensions для того и нужны, чтобы не писать такой хуйни.
Ось 0y можно выбрать так, чтобы плоскость z0y была бы параллельна ЛУЧУ.
Тогда до отражения можно рассматривать ПЛОСКОСТЬ, проведённую через ЛУЧ параллельно к z0y. Сечение конуса этой ПЛОСКОСТЬЮ - некая гипербола - решается квадратное уравнение, находятся точки пересечения, если они есть.
А как ты решал?
Оставить комментарий
gsharov
Да, рейтрейсер на питоне это изврат, но по приколу можноЭто работает, но строит не конус а хрень какую то (со сферой разобрался) те косяк алгебраический...
Поможите, - где косяк в алгебре?