玉露の粉茶がまだ残っていた!

お酒が切れてしまったので,業スーに買い出しにゆかなくてはならないのだが,すでに3時.欠品を点検してみたところ,まだしばらくは持ちそうなので,Wellciaでお酒とタバコだけ補充するという方針に切り替えた.4L25度の焼酎がWellciaでは業スーより100~200円くらい高くなるが,全体の出費は押さえられるのでこの方がベターだ.Wellciaではお茶を補給できないのだが難点だが(粉茶はないし普通のお茶は高い),この前(敬老の日)に市から支給された地域通貨(ネギー)で市内で購入した玉露の粉茶というのがまだほとんど手付かずで残っていた.

maximaのコードを書くのも一種のプログラミングなので,やはり,ログを付けながらでないと捗らない.二重ループを構成する必要があるが,まず,内側のシャフトがスライドしながら回転するところを作ってみよう.wikiにあるアルキメデスの楕円コンパスの模倣だ.⇒maximaの具合がかなり悪い.保存された「アルキメデスの楕円.wxm」を開いたところ,ほとんど壊れていて白紙状態になっている.「楕円コンパス.wxmx」は問題なく開けた.ここから始めることにしよう.

このサンプルでは,

parametric(k*cos(θ), (1-k)*sin(θ), θ, 0, 2*%pi)]

で楕円を描いている.とりあえず,この座標をX軸とY軸に射影して2点を結べば楕円コンパルのロッド部分になるはずだ.このサンプルはdraw2dで描画しているが,引数リストの中でFORループを使えるだろうか?というか,多分drawに書き換えないと動かないと思う.アニメのコードから始めた方がよさそうだ.⇒drawではgr2dで描画している.makelistはそれ自体ループになっているが,その中でFORループを使うことはできるのではないか?⇒makelistのループはkというパラメータで楕円の半径を制御している.

このkという値は,シャフト上の点の位置を示すものだが,それを延長したものが本来のアルキメデスコンパスだ.シャフト両端の座標は半径1の円周上の点をXY軸に移したものだから,kの値に関わりなく描画できなくてはならない.つまり,makelistの内側にループを作る必要がある.とりあえず,makelistをコメントアウトして,画面出力できるように改造しておこう.⇒どうも,maximaは思ったより難物だ.カンマのある/なしなどで動作しないのはよいとしても,安定がすこぶる悪い.「refusing」というぶっきら棒なメッセージが出たあと,メインの編集画面がほとんど壊れてしまっている.

コメントを残す

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

CAPTCHA