Azzera filtri
Azzera filtri

4次元表示したいです。

9 visualizzazioni (ultimi 30 giorni)
ryo tanaka
ryo tanaka il 8 Giu 2019
Modificato: Yoshio il 10 Giu 2019
3次元+温度表示の4次元データを作成したいです。
下の画像のように中心から外側にいくにつれて温度が低くなっているのを
4次元座標での表示をしたいです。
どのような方法で中心から外側に行くにつれて温度が低くなっているのを
4次元表示できますでしょうか?
教えてください。
無題.png

Risposte (1)

Yoshio
Yoshio il 8 Giu 2019
Modificato: Yoshio il 8 Giu 2019
こんな感じではいかがでしょうか?
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 Commenti
Yoshio
Yoshio il 10 Giu 2019
Modificato: Yoshio il 10 Giu 2019
この式は例題としてクーロンの法則を使っただけですので、気にされないでください。
本質は
u = a/sqrt(X.^2+Y.^2+Z.^2);
で中心に行くほど大きな値になります。ryo tanakaさんの表したい温度の式で置き換えてください。
V = log(u)としているのは、人間が見てわかる色の領域に値を圧縮しています。
温度範囲が狭ければ、uをそのまま表示すれば良いと思います。
ryo tanaka
ryo tanaka il 10 Giu 2019
返信ありがとうございます。
そういった意味だったのですね、ご丁寧にありがとうございました。
参考にさせてもらって作成してみたいと思います。

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!