Public
Edited
Jan 10, 2024
4 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
run = {
if (run_it) {
d3.select(membrane)
.select('transform')
.attr('scale', `1 1 ${Math.sin((Math.sqrt(n) * now) / 400)}`);
}
}
Insert cell
function j0_zero(n) {
let table = [
2.404825557695773,
5.5200781102863115,
8.653727912911013,
11.791534439014281,
14.930917708487787,
18.071063967910924,
21.21163662987926,
24.352471530749302,
27.493479132040253,
30.634606468431976
];
if (n < 11) {
return table[n - 1];
} else {
let z = table[9] + (n - 10) * Math.PI;
for (let i = 0; i < 5; i++) {
z = z + j0(z) / j1(z);
}
return z;
}
}
Insert cell
import {
create_indexedLineSet,
create_indexedFaceSet
} from "@mcmcclur/x3dom-primitives"
Insert cell
import {
make_arrow,
pt_list_to_coordString
} from 'ba6b3d20e94e294f'
Insert cell
import { Range, Toggle, Radio } from "@observablehq/inputs"
Insert cell
d3 = require('d3@6')
Insert cell
x3dom = require('x3dom').catch(() => window['x3dom'])
Insert cell
functionPlot = require("function-plot@1/dist/function-plot")
Insert cell
j1 = (await import("https://cdn.jsdelivr.net/npm/@stdlib/esm@0.0.3/math/base/special/besselj1.js"))
.default
Insert cell
j0 = (await import("https://cdn.jsdelivr.net/npm/@stdlib/esm@0.0.3/math/base/special/besselj0.js"))
.default
Insert cell
y0 = (await import("https://cdn.jsdelivr.net/npm/@stdlib/esm@0.0.3/math/base/special/bessely0.js"))
.default
Insert cell
MathJax = require('https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js').catch(
() => window['MathJax']
)
Insert cell
html`
<style>
canvas {
outline: none
}
</style>`
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more