是否有可能期待 pst-solides3d(在未来)生成渐变网格?

是否有可能期待 pst-solides3d(在未来)生成渐变网格?

我一直使用这种方法pst-solides3d来生成表面,然后将它们导入以Adobe Illustrator将它们变成渐变网格。如果我想要非常精确,这个过程可能会很耗时,即使只有 4 个顶点,我也必须手动调整它们的位置和所有 8 个手柄,然后从原始表面拾取颜色,相当费力。请参阅我的帖子这里

我的问题是:pst-solides3d 是否可以实现上述过程的自动化?

答案1

这实际上不是对您的问题的回答,因此您可能需要等待有关您的问题的其他答案pst-solides3d

这个答案是为了建立知识库并解决链接问题中的最后一句话https://graphicdesign.stackexchange.com/questions/42022/transforming-3rd-party-discrete-gradient-mesh-to-ais-smooth-gradient-mesh,即

或者,如果有更好的方法,我也想知道。谢谢。

据我了解,你想要

  • 平滑的渐变(=平滑的阴影)
  • 四边形面片
  • 矢量图形

这个特定问题可以通过 来解决pgfplots。我使用了莫比乌斯带,因为我既没有您的数据文件,也没有您的表面的参数化:

  1. 双线性补丁。补丁边界的一阶分辨率,双线性颜色插值:

在此处输入图片描述

\documentclass{standalone}

\usepackage{pgfplots}

\pgfplotsset{compat=1.9}

\usepgfplotslibrary{patchplots}

\begin{document}

\begin{tikzpicture}
    \begin{axis}
    \addplot3[
        surf, 
        samples=25, samples y=25,
        variable=r,   domain=-1:1,
        variable y=a, domain y=0:2*pi,
        trig format plots=rad,
        shader=faceted interp, 
        patch type=bilinear,
    ]
        ({cos(a) * (1+r/2 * cos(a/2))},
         {sin(a) * (1+r/2 * cos(a/2))},
         {r/2 * sin(a/2)});
    \end{axis}
\end{tikzpicture}
\end{document}
  1. 双三次贴片。贴片边界的三阶分辨率(和较少的贴片),双线性颜色渐变:

在此处输入图片描述

\documentclass{standalone}

\usepackage{pgfplots}

\pgfplotsset{compat=1.9}

\usepgfplotslibrary{patchplots}

\begin{document}

\begin{tikzpicture}
    \begin{axis}
    \addplot3[
        surf, 
        samples=10, samples y=10,
        variable=r,   domain=-1:1,
        variable y=a, domain y=0:2*pi,
        trig format plots=rad,
        shader=faceted interp, 
        patch type sampling, 
        patch type=bicubic,
    ]
        ({cos(a) * (1+r/2 * cos(a/2))},
         {sin(a) * (1+r/2 * cos(a/2))},
         {r/2 * sin(a/2)});
    \end{axis}
\end{tikzpicture}
\end{document}

这两个示例都需要patchplots库,并且都有一个依赖于r和的参数化表面a。参数化来自维基百科。请注意,trig format plots=rad将默认配置从度数切换到弧度。

双三次补丁非常难以生成:每个补丁有 16 个点。关键是patch type sampling大大简化了这一过程——如果输入数据无论如何都是从函数中采样的。如果您有表格输入,则必须自行提供补丁。

颜色取自colormap:最小z坐标映射到 的第一个颜色colormap,最大z坐标映射到 的最后一个颜色colormap。 中间的所有内容都线性映射到colormap。 进一步阅读:键point meta(选择要使用的标量值)和colormap(哪个colormap),也与“具有明确颜色的表面图”相关。

相关问题:使用程序图形创建贝塞尔曲面

相关内容