ポイント x、y の配列と、指定されたポイントでのそれぞれの角度があります。それらの点に接線をプロットしたいのですが、どうすればよいかわかりません。
http://postimg.org/image/s2y1pqqaj/
コマンド ウィンドウに示すように、1 列目には x ポイント、2 列目には y ポイント、3 列目にはそれぞれの接線角度が含まれます。図 1 は、x 点と y 点の間のプロットです。3列目でわかるように、すべてのポイントでの勾配、つまり接線角度を知っています。しかし、これらのポイントで接線を描画するためにそれを実装する方法を理解できません。接線 '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
よろしく、
マリナル