「gnuplot で斜方投射の速度ベクトルと軌道を描く」の Maxima 版。
$\theta = 45$° の斜方投射を規格化した時間と座標で書くとこんな感じ。
In [1]:
x(t):= 2 * t$
y(t):= 2 * t - t**2$
vx(t):= 2$
vy(t):= 2 - 2*t$
point と vector のデータを作成します。
In [2]:
/* 丸を打つ座標のリスト */
pointxy: makelist([x(t/2), y(t/2)], t, 0, 4)$
scaling: 0.2$
/* 2次元ベクトルは vector([始点のx, 始点のy], [x成分, y成分]) */
/* 速度ベクトル */
vecV: makelist(
vector([x(t/2), y(t/2)], scaling*[vx(t/2), vy(t/2)]), t, 0, 4)$
/* 速度の x 成分 */
vecVx: makelist(
vector([x(t/2), y(t/2)], scaling*[vx(t/2), 0]), t, 0, 4)$
/* 速度の y 成分 */
vecVy: makelist(
vector([x(t/2), y(t/2)], scaling*[0, vy(t/2)]), t, 0, 4)$
In [3]:
draw2d(
/* 全体的なフォントの設定例 */
font = "Arial", font_size = 14,
/* title のフォントサイズの変更例。gnuplot の流儀。 */
title = "{/=16 斜方投射の速度ベクトルと軌道}",
/* 表示範囲 */
xrange = [-0.5, 4.5], yrange = [-0.5, 2],
/* 縦横比 */
proportional_axes=xy,
/* グリッド。y 軸の目盛を 1 ごとに */
grid = true,
ytics = 1,
xaxis = true, yaxis = true,
/* 斜方投射の軌道 */
line_width = 2,
color = purple,
parametric(x(t), y(t), t, 0, 2),
/* ベクトルの矢の設定 */
head_length = 0.1,
head_angle = 20,
/* 速度の x 成分 */
color = blue,
line_width = 1.5,
/* 1つだけに凡例をつける */
key = "速度の x 成分",
vecVx[1],
key = "",
vecVx,
/* 速度の y 成分 */
color = red,
line_width = 1.5,
/* 1つだけに凡例をつける */
key = "速度の y 成分",
vecVy[1],
key = "",
vecVy,
/* 速度ベクトル */
color = black,
line_width = 2,
/* 1つだけに凡例をつける */
key = "速度ベクトル",
vecV[1],
key = "",
vecV,
/* 丸を打つ */
point_type = 6,
point_size = 0.7,
color = dark-green,
points(pointxy)
)$
In [4]:
/* 弘大 JupyterHub では
set_draw_defaults(file_name="~/.maxplot",terminal='svg)$
されているので。*/
system("cp ~/.maxplot.svg ./maxvec-shahou.svg")$