Не съм сигурен дали това е правилното място за въпроса ми, но ще опитам. Предполагам, че е нещо средно между CS и физиката, но тъй като програмирам това на C++, ще го публикувам тук.
Гледам частица в 3D, която се огъва в (x, y)-равнината поради сила, приложена към нея, както е показано на фигурата. Силата е удебелената стрелка, влизаща от NE. Ъгълът между оста y и силата е "а".
Частицата влиза отляво с вектор на скоростта (v_x, v_y, v_z) и се огъва около ъгъла. Това е добре и лесно описано от втория закон на Нютон, няма проблеми. Това е лесно за решаване числено, напр. по метода на Ойлер. Приложих го успешно, засега добре.
Въпреки това, както подсказва фигурата, частицата се движи в цилиндрична тръба с постоянен диаметър h и аз искам да намеря нормалното разстояние до стената както в x-, така и в z-посока (която сочи извън екрана) в даден момент t. Под „нормално разстояние“ имам предвид, че ако координатната система се върти заедно с частицата, тогава искам да знам разстоянието от частицата до ръба на тръбата по y и z (както е илюстрирано с 3 малки стрелки, сочещи към ръба на тръбата ). Крайната цел е по някакъв начин да разберем дали частицата е ударила стената или не.
За z-посоката това е тривиално, тъй като оста му не се променя по време на траекторията. Но y-посоката ми създава огромни проблеми. Това е въпросът ми: Има ли начин да намеря разстоянието до ръба на тръбата по y по време на траекторията? Обърнете внимание, че правя това числово, така че не е задължително да имам нужда от аналитичен израз.
Най-добре, Найлс.