2013-10-28 3 views
1

3 개의 변수 x, y 및 z를 사용하여 서페이스를 플롯해야하며 이는 3 개의 조인트 각 q1, q2 및 q3의 함수입니다. 그러나 나는 이것을 계획하는 법을 모른다.matlab에서 서페이스 플로팅

for q1=-170:5:170 
    for q2=-65:5:140 
     for q3=-180:5:70 
      c1 = cosd (q1); 
      c2 = cosd (q2); 
      c3 = cosd (q3); 
      s1 = sind (q1); 
      s2 = sind (q2); 
      s3 = sind (q3); 
      x =(320*c1)-(975*c1*s2)-(200*c1*c2*s3)-(200*c1*c3*s2); 
      y =(320*s1)-(975*s1*s2)-(200*c2*s1*s3)-(200*c3*s1*s2); 
      z = (975*c2)+(200*c2*c3)-(200*s2*s3)+680; 
     end 
    end 
end 

답변

2

몇 가지 사항을 고려해야합니다.

  1. 을위한 루프
  2. 당신의 coeffcient 벡터는
  3. 당신이 elementwise - 곱셈 연산자를 .*

편집을 사용할 필요가 같은 길이 될 필요가 필요하지 않은 : 나는 실제로 오해에게 먼저 질문을 던지십시오. 이제는 정확해야합니다.

q1x = -170:5:170; 
q2x = -65:5:140; 
q3x = -180:5:70; 

[x1, x2, x3] = meshgrid(q1x',q2x',q3x'); 
Q = [x1(:),x2(:),x3(:)]; 

q1 = Q(:,1); 
q2 = Q(:,2); 
q3 = Q(:,3); 

c1 = cosd (q1); 
c2 = cosd (q2); 
c3 = cosd (q3); 
s1 = sind (q1); 
s2 = sind (q2); 
s3 = sind (q3); 
x = (320.*c1) - (975.*c1.*s2) - (200.*c1.*c2.*s3) - (200.*c1.*c3.*s2); 
y = (320.*s1) - (975.*s1.*s2) - (200.*c2.*s1.*s3) - (200.*c3.*s1.*s2); 
z = (975.*c2) + (200.*c2.*c3) - (200.*s2.*s3)  + 680; 

데이터의 꽤 큰 금액 즉 : 같은

그래서 코드 보인다. - x,y,z은 모두 표면의 단일 점입니다.

이제 나는 당신의 "표면"이 어떻게 생겼는지 모르겠습니다. 당신이 얻고 자하는 것을 분명히하십시오. 조금 까다 롭습니다

scatter3(x,y,z,5,z) 
colormap(jet) 
view(45,10) 

mushroom

캐터 데이터에서 실제 표면을 얻기하지만 당신은 단지 표면 "에 대한 몇 가지 연구를 수행 할 수 있습니다


scatter3 당신이 귀여운 버섯을 줄 것이다 산란 데이터로부터」또는 무엇인가 ...

+0

큰 대답입니다. 'linspace'를 사용하는 것이 더 나은가? –

+0

@Akshay 나는 당신의 질문을 오해하고 나의 대답을 바로 잡았습니다. 그러나 나는 아직도 당신이 실제로 음모를 꾸미기를 원한다는 것을 모른다. – thewaywewalk

관련 문제