필터 지우기
필터 지우기

vector tangent to curve

조회 수: 9 (최근 30일)
gabriella armenia
gabriella armenia 2018년 5월 19일
댓글: gabriella armenia 2018년 5월 23일
Hi! i need your help.
I have to find component of a vector along the tangential direction to a curve and along the radial direction, that is orthogonal to tangential one, of course.
Then, i want to plot radial and tangential components.
this is my code:
function[f_tan_media,f_perp_media]=componenti(x,y,fx,fy)
for j=2:length(x)-1
slope(j)=(y(j+1)-y(j-1))/(x(j+1)-x(j-1));
% retta=slope(j)*(x-x(j))+y(j);
% plot(x(1:end),retta(1:end)); hold on
end
alfa=atan(slope);
beta=atan(fx./fy);
f_tan=zeros(length(fx),1);
f_perp=zeros(length(fy),1);
F = sqrt(fx.^2+fy.^2);
for i=1:length(alfa)
f_tan(i)=(F(i)*cos(alfa(i)+beta(i)));
f_perp(i)=(F(i)*sin(alfa(i)+beta(i)));
end
f_tan_media=mean(abs(f_tan));
f_perp_media=mean(abs(f_perp));
quiver(x(1:end),y(1:end),f_tan(1:end),f_perp(1:end))
for j=1:length(alfa)
u_tan(j)=(f_tan(j)*cos(alfa(j)));
v_tan(j)=(f_tan(j)*sin(alfa(j)));
end
figure;
plot(x,y,'r','LineWidth',4); hold on
quiver(x(1:5:end),y(1:5:end),u_tan(1:5:end)',v_tan(1:5:end)')
for i=1:length(alfa)
u_perp(i)=f_perp(i)*sin(alfa(i);
v_perp(i)=f_perp(i)*cos(alfa(i);
end
quiver(x(1:5:end),y(1:5:end),u_perp(1:5:end)',v_perp(1:5:end)')
legend('curva','f tan','f perp')
end
Is it ok?
Thank you so much!
  댓글 수: 4
John D'Errico
John D'Errico 2018년 5월 22일
편집: John D'Errico 2018년 5월 22일
You seem impatient for an answer. Your code has no documentation. No hint is provided as to what fx and fy actually mean. Are they scalars? vectors? If vectors, how long are they? What do they mean in this context? Just calling them force components means nothing.
So asking someone to jump up is asking someone to make a bunch of guesses about your code, then do a thorough verification and debug of your code, despite that it seems somewhat poorly written, and do this without knowing what the code should produce and without a clear explanation of the variables.
I would point out that if a slope is S, then the slope of the line orthogonal to it is -1/S. So the use of trig functions here seems a bit of overkill. But I would only be making a wild guess about the purpose of your code.
So if you want help, then make it easy (or at least possible) for someone to help you. Explain what the code and the variables really mean. What is the context of this problem? What the code should do. What you EXPECT it to do. Otherwise, expect it to take a long time before someone makes the effort to guess correctly what the code should be doing and then figure out how it should have been written, guessing what you really expected to see.
gabriella armenia
gabriella armenia 2018년 5월 23일
I'm so sorry. I didn't seem impatient. Sorry.
I would just plot tangential and radial components of F that is sqrt(fx.^2+fy.^2). fx and fy are vectors
thanks

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Annotations에 대해 자세히 알아보기

제품


릴리스

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by