5ddfeba0创建于 2022年9月18日历史提交

Quiver 3D

Examples

  1. Plot 3-dimensional vector field with given data.

::

let data = linspace(-3.0, 3.0, num:13)
let (X, Y, Z) = meshgrid(data, data, {x:Float64, y:Float64 => pow(y, 2.0) - pow(x, 2.0)})
quiver3(Z, U, V, W, scale: 5.0)
view(-35.0, 45.0)

Result:

.. image:: ../../../tests/imgs/quiver3d/quiver3d_1.png :align: center :width: 360

  1. Plot 3-dimensional vector field with normalized vectors and custom line width.

::

let sz = x.size()
let u = empty<Float64>(sz)
let v = empty<Float64>(sz)
let w = empty<Float64>(sz)
let m = empty<Float64>(sz)
for (i in 0..sz) {
    let t = exp(-pow(x[i], 2.0) - pow(y[i], 2.0) - pow(z[i], 2.0))
    u[i] = x[i] * t
    v[i] = y[i] * t
    w[i] = z[i] * t
    m[i] = sqrt(x[i] * x[i] + y[i] * y[i] + z[i] * z[i])
}
quiver3(x, y, z, u, v, w, m).normalize(true).line_width(2.0)

Result:

.. image:: ../../../tests/imgs/quiver3d/quiver3d_2.png :align: center :width: 360