Marta писал(а):
Сложность возникает с изменением направления после столкновения частицы со стенкой.
Разбейте Ваши поверхности на трехугольные элементарные поверхности. У каждой элементарной трехугольной поверхности определите нормаль. Задайте начальную точку и вектор скорости. Осуществите поиск элементарного треугольника, который пересечет линия направления движения с минимальным расстоянием. Сосчитайте координаты точки пересечения - это будут начальные координаты для следующего расчета соударения. Перемножте скалярно Ваш вектор скорости на единичный вектор нормали найденного Вами элементарного треугольника. Вычтите от текущего вектора скорости вектор единичной нормали, умноженный на удвоенное скалярное произведение. - это будет новый вектор скорости. Повторите итерацию требуемое число раз.
Разбиение поверхности на треугольники можно проводить исходя из разделения на четырехугольники регулярной сеткой, делением на два треугольника ( в пространственном случае могут быть проблемы с точностью вычисления векторов нормалей). Измельчите сетку и убедитесь что результат достигается тот же. Процедуру отлаживайте на пробной плоской геометрии поверхностей - легче визуализировать
Marta писал(а):
В какой программе лучше такую задачу решить и каким образом?
Основная проблема в визуализации траектории. Воспользуйтесь тем, что Вам знакомо.