動かない代数らせん(アルキメデスのらせん)

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)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です