Как я могу нарисовать 3D вектор с помощью MATLAB и перемещать его по параболе? - PullRequest
0 голосов
/ 23 сентября 2010

Ниже код для первого шага:

t = -20:0.1:20; 
plot3(zeros(size(t)),t,-t.^2);
hold on
i = 1;
h = plot3([0 0],[0 t(i)],[0 -t(i)^2],'r');
for(i=2:length(t))
    set(h,'xdata',[0 0],'ydata',[0 t(i)],'zdata',[0 -t(i)^2]);
    pause(0.01);
end

Теперь я нарисую второй вектор, зафиксированный в пространстве, с тем же началом движущегося вектора, скажем, [0 0 0] и концом, например, [0 0 30]. Чем существует угол между двумя векторами, имеющими одинаковое начало.

Мои вопросы: Я хотел бы вычислить биссектрису этого угла и показать, как биссектриса движется в пространстве в связи с движением первого вектора.

Спасибо за помощь

1 Ответ

0 голосов
/ 23 сентября 2010

Используйте новый обработчик (например, g), чтобы сохранить «plot3» для биссектрисы.

На каждом шаге вычисляйте уравнение биссектрисы и используйте «set» для обновления обработчика g (как вы делаете для h).

РЕДАКТИРОВАТЬ:

Для вычисления биссектрисы:

U = [1 2 3];
V = [4 5 6];
B = U / norm(U) + V / norm(V);
B = B / norm(U); % Bisector is now of norm 1
B = B * norm(U); % easier for plotting, bisector and U and now equal norms 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...