MATLABでトーラスを描く

MATLABを使ったトーラスの描き方はMATLABのヘルプセンターにサンプルコードがある。そのコードはSymbolic Math Toolboxを使って書かれてるため不必要な形になるよう書き直した。

トーラスは次の式で与えられる

\begin{align}
x&=R \cos p + r \cos q \cos p \\
y&=R \sin p + r \cos q \sin p \\
z&=r \sin q
\end{align}

これをそのまま実装した。

N=100;

R=2;
r=0.5;
p=linspace(0,2*pi,N);
q=linspace(0,2*pi,N);

for i=1:1:length(p)
    for j=1:1:length(p)
        x(i,j)=R.*cos(p(i))+r.*cos(q(j)).*cos(p(i));
        y(i,j)=R.*sin(p(i))+r.*cos(q(j)).*sin(p(i));
        z(i,j)=r.*sin(q(j));
    end
end
figure;
plot3(x,y,z,'red')

これでとりあえず動く。

コメント

タイトルとURLをコピーしました