AnyMath 文档

表面

该页面正在翻译中。

surface(x, y, z)
surface(z)

绘制表面,其中 (x,y) 定义一个网格,其高度是 z. xy 可能是 向量资料 定义一个规则网格, 矩阵 它定义了一个不规则的网格。

绘图类型

绘图类型别名 表面 功能是 表面.

例子:

网格表面

默认情况下,曲面数据放置在与输入数据大小匹配的网格上。 可以通过将值的范围或向量作为X和Y参数传递来显式指定网格。 然后,表面的位置/顶点被有效地导出为 点。(X,Y',Z). 间隔(例如 0..1)只能用于指定开始和端点,意味着介于两者之间的线性范围。 </无翻译>

using GLMakie
xs = LinRange(0, 10, 100)
ys = LinRange(0, 15, 100)
zs = [cos(x) * sin(y) for x in xs, y in ys]

surface(xs, ys, zs, axis=(type=Axis3,))
b920bc3

</无翻译>

using GLMakie
using DelimitedFiles

volcano = readdlm(Makie.assetpath("volcano.csv"), ',', Float64)

surface(volcano,
    colormap = :darkterrain,
    colorrange = (80, 190),
    axis=(type=Axis3, azimuth = pi/4))
93e8bb2

</无翻译>

using GLMakie
using SparseArrays
using LinearAlgebra

# This example was provided by Moritz Schauer (@mschauer).

#=
Define the precision matrix (inverse covariance matrix)
for the Gaussian noise matrix.  It approximately coincides
with the Laplacian of the 2d grid or the graph representing
the neighborhood relation of pixels in the picture,
https://en.wikipedia.org/wiki/Laplacian_matrix
=#
function gridlaplacian(m, n)
    S = sparse(0.0I, n*m, n*m)
    linear = LinearIndices((1:m, 1:n))
    for i in 1:m
        for j in 1:n
            for (i2, j2) in ((i + 1, j), (i, j + 1))
                if i2 <= m && j2 <= n
                    S[linear[i, j], linear[i2, j2]] -= 1
                    S[linear[i2, j2], linear[i, j]] -= 1
                    S[linear[i, j], linear[i, j]] += 1
                    S[linear[i2, j2], linear[i2, j2]] += 1
                end
            end
        end
    end
    return S
end

# d is used to denote the size of the data
d = 150

 # Sample centered Gaussian noise with the right correlation by the method
 # based on the Cholesky decomposition of the precision matrix
data = 0.1randn(d,d) + reshape(
        cholesky(gridlaplacian(d,d) + 0.003I) \ randn(d*d),
        d, d
)

surface(data; shading = NoShading, colormap = :deep)
surface(data; shading = NoShading, colormap = :deep)
c0c34c5

四边形网格表面

X和Y值也可以作为矩阵给出。 在这种情况下,表面位置如下 点。(X,Y,Z) 所以表面不再局限于XY网格。 </无翻译>

using GLMakie
rs = 1:10
thetas = 0:10:360

xs = rs .* cosd.(thetas')
ys = rs .* sind.(thetas')
zs = sin.(rs) .* cosd.(thetas')

表面(x,ys,zs)
4dcc062

南处理

如果曲面的顶点是NaN,意味着X,Y或Z对其贡献NaN,则无法绘制所有连接的面。 因此,表面将在NaN顶点周围有一个孔。 如果只是一个颜色是NaN,它将被绘制为 纳米色. </无翻译>

using GLMakie
xs = ys = vcat(1:9, NaN, 11:30)
zs = [2 * sin(x+y) for x in range(-3, 3, length=30), y in range(-3, 3, length=30)]
zs_nan = copy(zs)
zs_nan[25, 25] = NaN

f = Figure(size = (600, 300))
surface(f[1, 1], xs, ys, zs_nan, axis = (show_axis = false,))
surface(f[1, 2], 1:30, 1:30, zs, color = zs_nan, nan_color = :red, axis = (show_axis = false,))
f
b9692e3

2D表面

表面图可以作为二维热图或图像的离格版本。为此,建议通过 颜色 而不是Z参数,以避免情节根据其Z值干扰其他人。 </无翻译>

using GLMakie
rs = 1:10
thetas = 0:10:360

xs = rs .* cosd.(thetas')
ys = rs .* sind.(thetas')
zs = sin.(rs) .* cosd.(thetas')

surface(xs, ys, zeros(size(zs)), color = zs, shading = NoShading)
c2bf78b

属性

阿尔法

默认值为 1.0

Colormap或color属性的alpha值。 多个阿尔法像在 图(alpha=0.2,颜色=(:红色,0.5),会成倍增加。

背光源

默认值为 0.0

为具有倒法线的二次光计算设置权重。

夹片机

默认值为 自动的

剪辑平面提供了一种在3D空间中进行剪辑的方法。 您可以设置最多8个向量 平面3f 飞机在这里,后面的情节将被裁剪(即变得不可见)。 默认情况下,剪辑平面继承自父绘图或场景。 您可以删除父 夹式飞机 通过传递 平面3f[].

颜色

默认值为 什么都没有

可以设置为一个 矩阵{<: Union{Number, Colorant}} 颜色表面独立于 z 组件。 如果 颜色=没有,它默认为 颜色=z. 也可以是一个 麦琪[医]抽象模式.

颜色表

默认值为 @继承colormap:viridis

设置为数字采样的颜色表 颜色s. PlotUtils.cgrad(。..), 麦琪反向(any_colormap) 也可以使用,或者来自ColorBrewer或PlotUtils的任何符号。 要查看所有可用的颜色渐变,您可以调用 麦琪可用的_gradients().

颜色变化

默认值为 自动的

表示的开始点和结束点的值 颜色表.

色阶;色阶

默认值为 身份认同

的颜色变换功能。 可以是任何函数,但只能与 颜色栏身份认同, 日志, 日志2, 日志10, sqrt,sqrt, 罗吉特, 麦琪伪科学10麦琪符号10.

depth_换档

默认值为 0.0

在所有其他变换之后(即在剪辑空间中)调整绘图的深度值,其中 0<=深度<=1. 这仅适用于GLMakie和WGLMakie,可用于调整渲染顺序(如可调谐透绘)。

弥漫性;弥漫性

默认值为 1.0

设置红色、绿色和蓝色通道对漫射(散射)光的反应强度。

外汇管理局

默认值为 真的

调整绘图是否使用fxaa(抗锯齿,仅限GLMakie)渲染。

[医]高

默认值为 自动的

Colorrange上方任何值的颜色。

可检查的

默认值为 @继承inspectable

设置此图是否应由 数据探测仪. 默认值取决于父场景的主题。

检查员-检查员

默认值为 自动的

设置回调函数 (检查员,情节)->。.. 用于清理DataInspector中的自定义指标。

检查员-检查员

默认值为 自动的

设置回调函数 (检查员,情节,索引)->。.. 它取代了默认值 显示_数据 方法。

检查器_label

默认值为 自动的

设置回调函数 (绘图、索引、位置)->字符串 它替换了DataInspector生成的默认标签。

插值,插值

默认值为 真的

[(W)GLMakie only] 指定是否使用插值对表面矩阵进行采样。

反转_正态

默认值为 错误

反转为曲面生成的法线。 这可用于照亮表面的另一侧。

低频,低频

默认值为 自动的

Colorrange以下任何值的颜色。

材料

默认值为 什么都没有

RPRMakie只属性设置复杂的RadeonProRender材料. Warning,如何设置RPR材质可能会发生变化,其他后端会忽略此属性

模型

默认值为 自动的

为绘图设置模型矩阵。 这将复盖使用 翻译!, 旋转!规模!.

纳米色

默认值为 :透明

NaN值的颜色。

透支

默认值为 错误

控制绘图是否将绘制在其他绘图上。 这具体意味着忽略GL后端中的深度检查

底纹/底纹

默认值为 自动的

设置使用的照明算法。 选项是 NoShading (无照明), 快装,快装 (AmbientLight+PointLight)或 MultiLightShading (多个灯,仅GLMakie)。 请注意,这不会影响RPRMakie。

光泽,光泽

默认值为 32.0

设置反射的锐度。

空间

默认值为 :数据

设置包含情节的盒子的变换空间。 见 麦琪空间() 供可能的输入。

镜面,镜面

默认值为 0.2

设置对象在红色、绿色和蓝色通道中反射光线的强度。

ssao

默认值为 错误

调整是否使用ssao(屏幕空间环境光遮蔽)渲染绘图。 请注意,这仅在3D绘图中有意义,并且仅适用于 fxaa=真.

转型

默认值为 :自动

没有可用的文档。

透明度

默认值为 错误

调整情节处理透明度的方式。 在GLMakie 透明度=真 导致使用顺序独立的透明度。

uv_翻译

默认值为 自动的

设置uv坐标的变换,用于控制纹理映射到曲面的方式。 属性可以是 , 比例::矢量类型{2}, (翻译::VecTypes{2},比例::向量类型{2}),任何:rotr90,:rotl90,:rot180,:swap_xy/:transpose,:flip_x,:flip_y,:flip_xy,或最一般的a 麦琪垫子{2, 3, Float32}麦琪Mat3f 返回的 麦琪uv_transform(). 它们也可以通过传递元组来改变 (op3,op2,op1).

可见

默认值为 真的

控制是否渲染绘图。