MATLAB에서 특정 각도로 배치 된 화살표를 어떻게 표시합니까?

StackOverflow https://stackoverflow.com/questions/1803043

  •  05-07-2019
  •  | 
  •  

문제

나는 Matlab에서 일하고 있고 매우 간단한 문제에 갇혀 있습니다. 그 위치에 따라 객체를 정의했습니다. (x,y) 그리고 theta (각도, 각도). 지점에서 시작하여 포인트에서 시작하여 각도에 의해 정의 된 방향을 향한 화살표를 추가하고 싶습니다. 실제로 화살표 일 필요조차 없습니다. 각도의 값을 그래픽으로 보여주는 모든 것이 수행됩니다!

다음은 내가 그려려고하는 것을 보여주는 사진입니다.

Dead Imageshack 링크를 제거했습니다

도움이 되었습니까?

해결책

퀴버 () 플로팅 기능은 이와 같은 화살표를 플롯합니다. theta 값을 가져 와서 화살표로 플로팅하려는 벡터를 나타내는 (x, y) 직교 좌표로 변환하고 (u, v) 매개 변수로 퀴버 ()로 사용하십시오.

theta = pi/9;
r = 3; % magnitude (length) of arrow to plot
x = 4; y = 5;
u = r * cos(theta); % convert polar (theta,r) to cartesian
v = r * sin(theta);
h = quiver(x,y,u,v);
set(gca, 'XLim', [1 10], 'YLim', [1 10]);

온라인으로 Matlab 문서를 살펴 보려면 다른 플롯 유형을보십시오. 여러 방사형 플롯을 포함하여 많은 것이 있습니다. 그들은 matlab> functions> 그래픽> 특수 플로팅 섹션에 있습니다. 명령 줄에서 "Doc Quiver"를하고 주위를 찾아보십시오.

다른 팁

당신이 링크 한 이미지처럼 보이는 것을 시도하고 만들고 싶다면 다음을 수행하는 데 도움이되는 코드가 있습니다 (노트: 먼저 제출물을 다운로드해야합니다 Arrow.m ~에 의해 에릭 존슨Mathworks 파일 교환, 나는 항상 어떤 모양과 크기의 화살표를 생성하는 데 사용하고 싶습니다) :

x = 1;                          % X coordinate of arrow start
y = 2;                          % Y coordinate of arrow start
theta = pi/4;                   % Angle of arrow, from x-axis
L = 2;                          % Length of arrow
xEnd = x+L*cos(theta);          % X coordinate of arrow end
yEnd = y+L*sin(theta);          % Y coordinate of arrow end
points = linspace(0, theta);    % 100 points from 0 to theta
xCurve = x+(L/2).*cos(points);  % X coordinates of curve
yCurve = y+(L/2).*sin(points);  % Y coordinates of curve
plot(x+[-L L], [y y], '--k');   % Plot dashed line
hold on;                        % Add subsequent plots to the current axes
axis([x+[-L L] y+[-L L]]);      % Set axis limits
axis equal;                     % Make tick increments of each axis equal
arrow([x y], [xEnd yEnd]);      % Plot arrow
plot(xCurve, yCurve, '-k');     % Plot curve
plot(x, y, 'o', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'w');  % Plot point

그리고 다음은 다음과 같습니다.

enter image description here

그런 다음 플롯에 텍스트를 추가 할 수 있습니다 (각도 및 좌표 값)을 사용하여 text 기능.

여기 부분적인 대답이 있습니다. 나머지는 알아낼 수 있다고 기대합니다. 그림 편집기를 발사하고 플롯 도구를 열었습니다. 팔레트에서 화살표를 내 그림으로 끌었습니다. 그런 다음 M 파일을 생성했습니다. 여기에는 라인이 포함되어 있습니다.

주석 (그림 1, '화살표', [0.1489 0.2945], [0.5793 0.6481]);

따라서 첫 번째 좌표 쌍은 화살표의 시작입니다. 약간의 삼각법을 사용하여 뾰족한 끝 (두 번째 좌표)을 파악해야합니다. 줄거리 도구로 좀 더 충격을 받으면 작은 아크를 얻을 수도 있습니다.

Trig가 당신을 물리 치면 알려주세요. 아, 그리고 나는 요점을 음모하는 것을 잊었지만, 당신이 그것을 알아낼 수있을 것 같아요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top