2012-03-23 2 views
4

나는 여러 영역을 그릴 필요가 다음과 같이 나는 mathwork 도움말에서 예제 코드를 사용하여 한 -Matlab에서 구를 그리는 동안 반경을 정의하는 방법은 무엇입니까?

figure 
[x,y,z] = sphere(); 
surf(x,y,z) % sphere centered at origin 
hold on 
surf(x+3,y-2,z) % sphere centered at (3,-2,0) 
surf(x,y+1,z-3) % sphere centered at (0,1,-3) 
daspect([1 1 1]) 

내가 다른 반경으로 구체가 필요합니다. 이 구체의 각각에 반경을 어떻게 정의 할 수 있습니까?

답변

9

(http://www.mathworks.com.au/help/techdoc/ref/sphere.html) sphere]에 대한 도움말 파일은 단지 곱셈 반경 r 당신의 구형으로 반경 1의 구형 좌표를 변경하는 부 구 또는 반지름 (1)의 구형 좌표를 생성하는 것을 말한다 r에 의해 그들 :

[x,y,z] = sphere(); 
r = 5; 
surf(r*x, r*y, r*z) % sphere with radius 5 centred at (0,0,0)  
2

IMO, surf()은 모든 사용자에게 친숙하지 않습니다. surf(x+3,y-2,z) % sphere centered at (3,-2,0) 코드는 반 직관적입니다 (surf(x-1,y+2,0)은 수학과 일치합니다).

어쨌든 ellipsoid()을 사용하는 것이 좋습니다.

r=5; 
[x,y,z]=ellipsoid(1,2,3,r,r,r,20); 
surf(x, y, z,'FaceColor','y', 'FaceAlpha', 0.2); 
axis equal; 
box on; xlabel('x-axis (m)'); ylabel('y-axis (m)'); zlabel('z-axis (m)'); 
: 영역은 타원체의 단지 특별한 경우이기 때문에, http://www.mathworks.com/help/matlab/ref/ellipsoid.html

에서 간단한 예를 보면 쉽게 이해할 수 있으며 surf() 처리 할 필요가 없습니다

관련 문제