У меня есть массив точек x, y и соответствующих углов в этих указанных точках. Я хочу построить касательную линию в этих точках, я не могу понять, как действовать дальше.Как нарисовать касательную линию в определенных точках кривой в Matlab
http://postimg.org/image/s2y1pqqaj/
Как показано в командном окне 1-й столбец содержит х точек, 2-й столбец содержит Y точек и 3-й столбец соответствующий угол касательной. Рисунок 1 - график между точками x и y. Я знаю угол наклона i.e касательного угла в каждой точке, как вы можете видеть его в третьем столбце. Но не в состоянии понять, как реализовать его, чтобы нарисовать касательную в этих точках. Также уравнение для касательной линии 'y = mx + b', где m - наклон и b - перехват y. Благодарю вас.
Вот код
% Fill in parr a list of points and tangents to be used for display.
% @param parr (x,y) Array of points.
% @param tan Array of tangents.
% @param lengthStep Distance between points.
function [x y tan] = GetPointListForDisplay(m_Length,r1,r2,count)
global nn ca ce length;
GetLength = m_Length;
length = GetLength;
ca = GetCurvatureAtDeltaLength(0.0);
ce = GetCurvatureAtDeltaLength(length);
%if ((abs(ca) < 1.0/10000.0) && (abs(ce) < 1.0/10000.0))
%end
radius = 1.0 ./ max(abs(ca), abs(ce));
%if (radius < 0.1)
%end
nn = 3 + (180.0 * length/(2*pi*radius)); % Using modified formula of arc here
lengthStep = length/nn;
currLen = -lengthStep;
while (1)
currLen = currLen + lengthStep;
if (currLen > m_Length)
currLen = m_Length;
end
[x,y] = GetPointAtDeltaLength(currLen);
[tan] = GetTangentGridBearingAtDeltaLength(currLen);
z(count,1) = x;
z(count,2)= y;
z(count,3)= tan;
figure(1);
%plot(z(count,1).*sin(z(count,3)),z(count,2).*cos(z(count,3)),'b*');
%plot(z(1,count).*cos(z(3,count)),z(2,count).*sin(z(3,count)),'b*');
plot(z(count,1),z(count,2),'b*');
%plot(z(1,count),z(2,count),'b*');
hold on;
%pause(0.1);
count=count+1;
axis equal;
if (currLen >= m_Length)
z(count,1)= tan
break;
end
end
end
С уважением,
Mrinal
Спасибо, но я не могу понять, как я могу использовать это уравнение в моем коде. Вот мой код, поскольку я использую различные функции, поэтому я не могу загрузить весь код, но функция, в которой я использую это, приведен ниже. Надеюсь, вы можете руководствоваться. Я загружаю свой код в ответы выше. – mony
Ваш код не имеет отношения к вашему вопросу. Я просто использовал вашу матрицу 'z'. вы должны сами определить 'ii',' x1' и 'x2'. Попытайтесь понять, что я публикую, вам просто нужно поставить его под свой код. На самом деле я не получаю ваши пустые условия if выше. – thewaywewalk
Хорошо. я сделаю так, как вы предложили, и извините, что я забыл стереть это условие, я сделаю это сейчас. – mony