У меня есть матрица для контактных позиций, и эти положения являются линейными, поэтому я могу легко построить контактные позиции в MATLAB и выйти с количеством строк x. На данный момент я рисую в 2D-графике.3D-заполненный график линии
for j= 1:5
for k= 1:20
Yijk(j,:,k)=x*tan_helix+one_array*(k-P)*Pb/P+one_array*(j-(L+1)/2)*Pb;
end
end
x_axis = linspace(0,b*1000, N+1);
figure;
for j=1:zPairs;
hold on
plot(x_axis,Yijk(j,:,k))
hold off
end
Вышеупомянутый раздел представляет собой лишь небольшую часть большого кодирования, поэтому все переменные и параметры указаны где-то еще.
Ниже приведен график это просто создает с 2D графике:
http://oi58.tinypic.com/20p8rpi.jpg
То, что я хочу сделать, это Постройте correspoding контакт с каждой из этих позиций, контакт происходит только в положениях> 0 и, следовательно, будет происходить только вдоль линий, построенных выше. Поэтому график должен быть в трехмерном формате, и я предполагаю, что строки будут построены изначально, затем contact_force, а затем команда заполнения как таковая, но я могу ошибаться.
Что я стремлюсь создать нечто похожее на:
http://oi62.tinypic.com/2vwyzdk.jpg
Если кто имеет какие-либо указания или советы будет высоко оценили как я не подвожу нигде.
Обратите внимание, что контакт_force также является матрицей тех же размеров, что и контактные положения.
for j = 1:zPairs
Xx = linspace(0,b*1000,N+1);
Yy = Yijk(j,:,1);
n = length(Xx);
Zz = contact_force(j,:,1);
Xp = zeros(2*n,1);
Yp = zeros(2*n,1);
Xp(1:N+1) = Xx;
Xp(N+2:2*(N+1)) = Xx(N+1:-1:1);
Yp(1:N+1) = Yy;
Yp(N+2:2*(N+1)) = Yy(N+1:-1:1);
Zp(1:N+1) = 0;
Zp(N+2:2*(N+1)) = Zz(N+1:-1:1);
figure(12);
hold on
patch(Xp,Yp,Zp,'c');
title('Zone of Contact');
hold off
end
Приведенный выше код работает, но только создает один граф, как для (у,:, 1). Я хотел бы изменить это так, чтобы он был создан для (j,:, k) и k числа графиков. Как мне настроить этот цикл?
Пробовал эту команду (см. Править), но, к сожалению, только что получил контактные линии в 3d-оси – user3190506