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')
これでとりあえず動く。
コメント