查看: 117|回復: 4|關注: 0
打印 上一主題 下一主題

[已解決] 出三維圖形,為什么循環不了,請指教

[復制鏈接]

新手

7 麥片

財富積分


050


6

主題

14

帖子

0

最佳答案
%結構參數初始化
r=300;
R=600;
l1=500;
l2=500;
l3=500;
l1min=400;
l1max=800;
thetamax=pi/4;
thetamin=-pi/4;
for a=-pi/4:0.1:pi/4
    for b=-pi/4:0.1:pi/4
        for z=-400:10.18:400
            
Px1=r*sin(a)*sin(b);
Py1=R-r*cos(b);
Pz1=r*sin(a)*cos(b);
l1=sqrt((Px1.^2+(R-Py1).^2+(Pz1+400).^2));%求桿長l1
Px2=-sqrt(3)*r/2*cos(b)-r/2*sin(a)*sin(b);
Py2=-r/2*cos(a);
Pz2=sqrt(3)*r/2*sin(b)-r/2*sin(a)*cos(b);
alpha=atan((Py2-R/2)./(Pz2+z));%求支鏈2輸入角度
Px3=sqrt(3)*r/2*cos(b)-r/2*sin(a)*sin(b);
Py3=-r/2*cos(a);
Pz3=-sqrt(3)*r/2*sin(b)-r/2*sin(a)*cos(b);
beta=atan((Py3-R/2)./(Pz3+z));%求支鏈3輸入角度
              if (l1min<=l1<=l1max)&(thetamin<=alpha<=thetamax)&(thetamin<=beta<=thetamax)
                  X=400.*cos(a).*sin(b);
                  Y=400.*sin(a);
                  Z=z+400;
              end
        end      
    end
end
plot3(X,Y,Z)

MATLAB 基礎討論
版塊優秀回答者

入門

403 麥片

財富積分


50500


0

主題

176

帖子

28

最佳答案
  • 關注者: 2
2#
發表于 6 天前 | 只看該作者 |此回復為最佳答案
可以循環,但你設置上有問題,X,Y,Z隨著循環改變數值,始終為一個數,故三維圖只是一個點,看不到圖像可以修改(紅色部分為修改)出圖如下
i=0;
for a=-pi/4:0.1:pi/4
    i=i+1;
    for b=-pi/4:0.1:pi/4
        for z=-400:10.18:400
            
Px1=r*sin(a)*sin(b);
Py1=R-r*cos(b);
Pz1=r*sin(a)*cos(b);
l1=sqrt((Px1.^2+(R-Py1).^2+(Pz1+400).^2));%求桿長l1
Px2=-sqrt(3)*r/2*cos(b)-r/2*sin(a)*sin(b);
Py2=-r/2*cos(a);
Pz2=sqrt(3)*r/2*sin(b)-r/2*sin(a)*cos(b);
alpha=atan((Py2-R/2)./(Pz2+z));%求支鏈2輸入角度
Px3=sqrt(3)*r/2*cos(b)-r/2*sin(a)*sin(b);
Py3=-r/2*cos(a);
Pz3=-sqrt(3)*r/2*sin(b)-r/2*sin(a)*cos(b);
beta=atan((Py3-R/2)./(Pz3+z));%求支鏈3輸入角度
              if (l1min<=l1<=l1max)&(thetamin<=alpha<=thetamax)&(thetamin<=beta<=thetamax)
                  X(i)=400.*cos(a).*sin(b);
                  Y(i)=400.*sin(a);
                  Z(i)=z+400;

新手

7 麥片

財富積分


050


6

主題

14

帖子

0

最佳答案
3#
 樓主| 發表于 6 天前 | 只看該作者
20141303 發表于 2019-10-25 20:13
可以循環,但你設置上有問題,X,Y,Z隨著循環改變數值,始終為一個數,故三維圖只是一個點,看不到圖像可以 ...

我想讓它生成三維曲面,要是修改的話應該怎么修改那?現在您修改后出的是一條線,怎樣出更多的線組成曲面呢,請您幫我看看

MATLAB 基礎討論
版塊優秀回答者

入門

403 麥片

財富積分


50500


0

主題

176

帖子

28

最佳答案
  • 關注者: 2
4#
發表于 6 天前 | 只看該作者
看了一下,這里的Z變量若為矩陣,應該就可以畫三維曲面,但這里我不知怎樣根據現有程序調出矩陣,抱歉啊

新手

7 麥片

財富積分


050


6

主題

14

帖子

0

最佳答案
5#
 樓主| 發表于 5 天前 | 只看該作者
20141303 發表于 2019-10-25 20:40
看了一下,這里的Z變量若為矩陣,應該就可以畫三維曲面,但這里我不知怎樣根據現有程序調出矩陣,抱歉啊 ...

好的,一家十分感謝了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

關閉

站長推薦上一條 /3 下一條

快速回復 返回頂部 返回列表
哪一款德州扑克还能玩