You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB中实现类似Plotly Volume的透明3D体可视化?

如何在MATLAB中实现类似Plotly Volume的体可视化效果

我希望在MATLAB中实现类似Plotly的Volume组件的体可视化效果。已尝试MATLAB官方文档中的多数方法,也试用了vol3d工具。

需求很明确:仅需一个整体高度透明的3D图,将数值进行局部分组并呈现为彩色“云状”,且支持turbo这类2D色图,无需严格追求精度(如抗锯齿)。

现有尝试的问题说明

以下是最接近目标的几种方法及其问题:

  • isosurface与isocaps:颜色映射错误,最大值显示为最小值,且内部过于空洞/透明。
  • slice:若要颜色显示合理,alpha需设置过低;提高alpha则低数值区域会过度杂乱;alpha('color')对内部数值的透明度不足。
  • vol3d:缺乏透明度,呈现出类似砖块的质感。

我尝试反转isosurface/isocaps的输入符号并偏移数值,会产生无法理解的变化,同时也无法理解文档中isovalue参数的定义。

目标效果参考

代码

MATLAB 测试代码

OPTS = {'iso', 'slice', 'vol3d', 'slice-color'};
OPT = OPTS{1};

[X, Y, Z] = ndgrid(linspace(-8,8,40), linspace(-8,8,40), linspace(-8,8,40));
D = sin(X.*Y.*Z) ./ (X.*Y.*Z) * 100;
D = max(min(D, 100), 20);  % clip to [20, 100]

figure
colormap('turbo')
% make cube
xdim = size(X, 1);
daspect([size(X,2)/xdim, 1, size(X,3)/xdim])

switch OPT
    case {'iso', 'vol3d'}
        view(3)
        axis tight
        
        camlight left
        camlight
        lighting gouraud

        if strcmp(OPT, 'iso')
            isosurface(D, 20)
            isocaps(D, 20)
            alpha(.5)
        else
            vol3d('CData', D);
        end
    case {'slice', 'slice-color'}
        g = linspace(-8,8,40);
        h = slice(g,g,g, D, g,g,g);
        set(h,'EdgeColor','none',...
            'FaceColor','interp',...
            'FaceAlpha','interp');
        if strcmp(OPT, 'slice')
            alpha(.01)
        else
            alpha('color')
        end
end

Python/Plotly 参考实现代码

import numpy as np
import plotly.graph_objs as go
import plotly.io as pio
pio.renderers.default = 'browser'

X, Y, Z = np.mgrid[-8:8:40j, -8:8:40j, -8:8:40j]
V = np.sin(X*Y*Z) / (X*Y*Z) * 100
V = np.clip(V, 20, 100)

vkw = dict(showscale=False, colorscale='turbo', surface_count=50, opacity=.2)
fig = go.Figure(go.Volume(x=X.flatten(), y=Y.flatten(), z=Z.flatten(),
                          value=V.flatten(), **vkw))
fig.show()

内容的提问来源于stack exchange,提问作者OverLordGoldDragon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 23:50:55