4次元表示したいです。

13 ビュー (過去 30 日間)
ryo tanaka
ryo tanaka 2019 年 6 月 8 日
編集済み: Yoshio 2019 年 6 月 10 日
3次元+温度表示の4次元データを作成したいです。
下の画像のように中心から外側にいくにつれて温度が低くなっているのを
4次元座標での表示をしたいです。
どのような方法で中心から外側に行くにつれて温度が低くなっているのを
4次元表示できますでしょうか?
教えてください。
無題.png

回答 (1 件)

Yoshio
Yoshio 2019 年 6 月 8 日
編集済み: Yoshio 2019 年 6 月 8 日
こんな感じではいかがでしょうか?
alphaalphamapについては各々ドキュメントをご覧ください。
EPSO=8.854214871e-12;
CHARGE=1.6021918e-19;
x=-0.1:0.0025:0.1;
y = x;
z = x;
[X,Y,Z] = meshgrid(x,y,z);
u0=4.0*pi*EPSO*sqrt(X.^2+Y.^2+Z.^2+eps);
u=CHARGE*u0.^-1;
V = log(u);
xslice = [0,0.1]; yslice = [0.0,0.1]; zslice = [-0.1,0];
h = slice(X,Y,Z,V,xslice,yslice,zslice);
xlabel('X');ylabel('Y');zlabel('Z');
caxis([min(V(:)) -16.2])
axis equal
set(h,'EdgeColor','none','FaceColor','interp',...
'FaceAlpha','interp')
alpha('color')
alphamap('increase',.3)
rotate3d
untitled.bmp
  5 件のコメント
Yoshio
Yoshio 2019 年 6 月 10 日
編集済み: Yoshio 2019 年 6 月 10 日
この式は例題としてクーロンの法則を使っただけですので、気にされないでください。
本質は
u = a/sqrt(X.^2+Y.^2+Z.^2);
で中心に行くほど大きな値になります。ryo tanakaさんの表したい温度の式で置き換えてください。
V = log(u)としているのは、人間が見てわかる色の領域に値を圧縮しています。
温度範囲が狭ければ、uをそのまま表示すれば良いと思います。
ryo tanaka
ryo tanaka 2019 年 6 月 10 日
返信ありがとうございます。
そういった意味だったのですね、ご丁寧にありがとうございました。
参考にさせてもらって作成してみたいと思います。

サインインしてコメントする。

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!