2022.05.28
動かない代数らせん
巻き数 = 0 ですね。
エラーステータス= 0
【解説】
「らせん」には、曲率半径が「等比数列」と「等差数列」の2種類があります。
今回は「等差数列」によるらせんです。「代数らせん」と呼ばれています。
曲率半径が、回転角キザミ(2π/100)ごとに0.1 ずつ大きくなります。
等比数列による「対数らせん」と比べてみて、どちらが自然に感じますか?
固定ページに以下のHTMLとPHPを書きます。
<h6>2022.05.28<br>らせん(等差数列)</h6>
<form method="post">
<p id="seisu">巻き数 = <input type="number" name="num" value="">
<input type="submit">
</p>
</form>
<?php
$cmd = "rm ./tempcoil*.png";
exec($cmd);
$n = intval(htmlspecialchars(@$_POST['num'], ENT_QUOTES, 'UTF-8'));
$cmd = "~/anaconda3/bin/python3.9 ./pythons/coil-2-arithmetic-1.py ".$n;
exec($cmd, $out, $st);
$fname = $out[0];
$file = "https://kero-world.com/".$fname;
echo "<p>巻き数 = $n ですね。</p>";
echo "<p>エラーステータス= $st</p>";
?>
<html>
<img src = <?=$file?> >
</html>
サーバーに以下のPythonプログラムをアップロードしておきます。
import sys
import numpy as np
import math
import matplotlib.pyplot as plt
import datetime
t_delta = datetime.timedelta(hours=9)
JST = datetime.timezone(t_delta, 'JST')
fig = plt.figure()
x,y = [],[]
maki = float(sys.argv[1])
r = 1.0
kaiten = np.array(np.arange(0, 2*maki*np.pi, 2*np.pi/100))
for i in kaiten:
r = r + 0.1
x.append(-r * math.cos(i))
y.append(-r * math.sin(i))
plt.plot(x,y)
now = datetime.datetime.now(JST)
d = now.strftime('%Y%m%d%H%M%S')
file = "tempcoil" + d + ".png"
print(file)
fig.savefig(file)