So-net無料ブログ作成

Abdank-AbakanowiczのQuadratrix [見て楽しむ三角関数]

ScratchAbdank-AbakanowiczのQuadratrixを描きます。Abdank-Abakanowiczは数学者の名前です。

[Quadratrix]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。Rは定数で、準備で値を設定します。

[変数]

次に本体です。角度を-540度から540度まで変化させながら計算、移動を繰り返すと、この曲線が描けます。

[本体]

次に準備です。変数の初期設定、ペンの属性などの設定、開始座標の計算を行い、開始座標に移動しています。

[準備]

倍率は式には出てきませんが、曲線を拡大するために使っていて、51に設定するとY座標からの高さが最高で51になります。

式はこうなっています。Rは定数、θは角度です。
\[ x=R\sin(\theta) \\
y=\frac{R^2}{2}(\theta+\sin(\theta)\cos(\theta)) \] この式をプログラムにすると次のようになります。sin関数やcos関数の引数のθはScratchでは角度ですが、関数の外にあるθはラジアンですので、ラジアンも計算して使っています。

[計算]

倍率は式には出てきませんが、曲線を拡大するために使っています。Rと倍率を変えると曲線が変化しますので、興味があればプログラムを変えながら試してみてください。

計算から呼び出すラジアンは次のような処理になります。

[ラジアン]

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

勝手にAmazon prime登録された

Amazonから「Amazonプライムへようこそ」という題名のメールがきた。時間は昨夜遅くで、気づいたのは今日の午後。あの時間はたしか寝ていたはずだし自分ではそのような操作はしていない。

アカウントがハックされたことを想定してとりあえずパスワードは変更。

その後Amazonのヘルプページを探したところ

Amazonプライム会員登録をキャンセルする、返金を受ける

というページが見つかったので、必要事項を入力したらAmazonから電話がかかってきた。コールセンターは混んでいるらしく、録音を聞かされてしばらく待っていたら、担当者に変わった。

Prime登録は身に覚えがないことを伝え、返金処理をしてくれた。対応は感じが良かった。

真相やいかに。
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

ひげぜんまい曲線 Balance Spring Curve [見て楽しむ三角関数]

Scratchひげぜんまい曲線を描きます。ひげぜんまいは時計の中に入っている部品だそうです。

[ひげぜんまい曲線]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に式です。rは半径、aは倍率、θは角度、eはネイピア数、kとmは画面上でスライダー表示にしてパラメータ化しています。スライダーで値を変えると曲線の形が変わりますよ。
\[ r=\frac{a}{1+ke^{m\theta}} \] 次に変数です。kとmと大きさは上にも書いたようにスライダーにして画面上で値を調整できようにしています。

[変数]

次に本体です。式に与える角度を変化させながら計算、移動を繰り返しています。今回の曲線は円の外側から中心に向かって描画しますので、画面の中心部に十分近寄ったところで処理を中止しています。

[本体]

次に準備です。ペンの初期設定、変数の初期設定、開始座標の計算を行い、開始座標に移動しています。

[準備]

次に計算です。上に書いた式をプログラムにすると次のようになります。

[計算]

計算から呼び出すラジアンの計算は次のようになります。

[ラジアン]

移動はいつも通りです。計算で求められた座標(X, Y)に移動します。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

通訳した話 [英語]

過去の話です。

本業は技術系なのに、仕事関係の会議中に何の前触れもなく「通訳お願いします」と言われた。理由は英語がある程度しゃべれるから。訓練したことはないけど、偉い人に頼まれたので仕方がない。

書きながら思い出したけど、最初に入った会社で社会人一年目の頃、同じような理由で外人のプレゼンを通訳したことがあった。とはいえ、仕事での通訳はそれ以来やったことがない。あの時は事前に原稿をもらって訳しておいたし内容もまぁまぁ馴染みがあったのでなんとかなったが、今回は新しい案件で原稿もなく、扱ったこともない技術だったので戸惑った。

今回はホテルの会議室を借りていて、参加者は30人程度。心拍数が倍くらいになってドギマギしながら喋ったところ、まぁまぁできたらしい。壇上ではなくて机を囲みながらだったのが救いだったと思う。それ以降、緊急時の通訳要員と認識されたようだ。あれほどの緊張はそれ以降の通訳では経験していない。

基本的には「プロを雇ってください」と断るんだけど、仕事なので断り続けるわけにもいかず。

緊急の会議で時間がなくて手配できなかったとか、来た通訳者が全然訳せないから代わってとか、そんな時には訳す羽目になる。

その後もなんどもやったけど初めの緊張感はなくなって、実は初回が一番うまくいった気がしている。

ということで、たまに英語関連の話を書くつもりです。なるべく身バレしないように脚色するので、話半分程度で。
タグ:英語 通訳
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

ワットの曲線 Watt's Curve [見て楽しむ三角関数]

Scratchワットの曲線を描きます。

[ワットの曲線]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

今回は式から始めます。rは半径、a, b, cは固定値、θは角度です。
\[ r^2=b^2-\left(a\sin(\theta)\pm\sqrt{c^2-a^2\cos^2(\theta)}\right)^2 \] この式をr=の形式にすると次のようになります。
\[ r=\sqrt{b^2-\left(a\sin(\theta)\pm\sqrt{c^2-a^2\cos^2(\theta)}\right)^2} \] ±の記号があるので、プラス用の式とマイナス用の式を実装します。式が二つなので、今回はスプライトを式ごとに二つ作り、上半分と下半分を別々に描画しています。

[上]

[下]

このため、上と下で違う色を使っています。

また、後で出てきますが、二つの式に共通する処理はステージに定義しています。

[ステージ]

次に変数です。ステージの変数はすべてのスプライト用にしてプラスの式とマイナスの式の両方から参照できるようにします。

[ステージ変数]

各スプライトでは、ステージで定義した変数に加えて式や描画に必要な変数を用意します。同じ名前の変数を二つのスプライトで使うので、各スプライトで「このスプライトのみ」として定義します。

[スプライト変数]

次に本体です。緑色の旗をクリックすると、ステージに定義した本体を実行します。

[ステージ本体]

ステージの本体では二つのスプライトから参照される変数を初期設定し、最後に「初期設定完了」イベントを送っています。

二つの描画用スプライトはこのイベントを受け取ると描画を開始します。

[スプライト本体]

角を0度から361度まで変化させながら計算、移動を繰り返すと曲線が描画できます。この処理は上のスプライトと下のスプラストで共通で、両方のスプライトに同じ内容を定義します。

次に準備です。この処理も上のスプライトと下のスプライトで共通です。

[準備]

上半分の曲線の計算は次のようになります。上のスプライトに定義します。式が長いので、右側のカッコの中を一旦、変数zに入れておき、そのあとの計算に使っています。

[上計算]

また、下半分の曲線の計算は次のようになります。こちらは下のスプライトに定義します。

[下計算]

違いは、二行目の式の+と-の部分です。

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

バタフライ曲線 Butterfly Curve [見て楽しむ三角関数]

Scratchバタフライ曲線を描きます。

[バタフライ曲線]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。sinとsin5乗は計算の途中結果を保存しておくための変数です。

[変数]

次に本体です。曲線の大きさ(倍率)と曲線の色を少しずつ変えながら12本のバタフライ曲線を描いています。

[本体]

次に準備です。ペンの準備と変数の初期設定を行なっています。

[準備]

バタフライ曲線一本を描く処理は次のようになります。角度を0度から360度まで変化させながら計算、移動を繰り返すと、バタフライ曲線が一本描画できます。曲線が滑らかになるように、角度は0.1度ずつ変化させています。普通に実行すると時間がかかるので、Scratchではターボモードにするのがお勧めです。

[蝶]

これまでは本体で二重の繰り返しにしていましたが、今回は内側の繰り返しを外出ししています。外出しにあまり意味はありませんが、一般的には一つの関数や処理が長くなりそうな時には分割すると理解しやすくなります。

次は「開始点に移動」です。一つのバタフライ曲線を描き始める前に開始点に移動しておきます。

[開始点に移動]

式はこうなっています。rは半径、θは角度、最初のeはネイピア数と呼ばれ、値は2.71828...です。eの階乗を計算する演算(関数)はScratchに最初から備わっています。
\[ r=e^{sin(\theta)}-2\cos(4\theta)+sin^5\left(\frac{2\theta-\pi}{24}\right) \] ここからなぜ蝶のような曲線が出てくるのかはよくわかりません。この式をプログラムにすると次のようになります。式が長いのでプログラムでは分割して計算しています。

[計算]

試してみるとわかりますが、実は式の最後のsin5乗の値は足しても引いても式から取り除いても最終的な曲線にそれほど大きな影響はありません。

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

カッシーニ曲線 Cassini Curve [見て楽しむ三角関数]

Scratchカッシーニ曲線を描きます。

[Cassini曲線]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。スライダー表示にしている「度数」は焦点(中央にできる空白)の数で、値を変えると曲線の形が変わります。a, b, eは式で使う係数です。

[変数]

度数2から6までの曲線は次のようになります。

23456
[Cassini 2] [Cassini 3] [Cassini 4] [Cassini 5] [Cassini 6]


次に本体です。大きさを変えながら曲線を18回描くので、二重の繰り返しにしています。内側の繰り返しで曲線を一本書いています。

[本体]

内側の繰り返しが終了したら変数bの値を小さくしています。これにより曲線の大きさと形が内側に向かって少しずつ変化していきます。

次に初期設定です。ペンの設定や変数の初期設定を行なっています。

[初期設定]

次に初期設定の最後の呼び出している倍率計算です。最後の式の178の理由ですが、一番外側(最大)の曲線がY座標の範囲-180〜180より少し小さくなり、描画領域をはみ出さないように、この値を使っています。

[倍率計算]

カッシーニ曲線を描くための式はこうなっています。rは半径、aは倍率(大きさ)、\( e=\frac{a}{b} \)、nは度数、θは角度です。
\[ r=a\sqrt{cos(n\theta)\pm\sqrt{e^{2n}-sin^2(n\theta)}} \] この式をプログラムにすると次のようになります。長い式なので分割して、式の右側から順番に計算します。

[計算]

計算の中で呼び出している階乗は次のようになります。底を指数回掛けて、結果を「階乗」変数に保持しておきます。この変数は計算の中で使います。

[階乗]

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

頭蓋曲線 Cranioid [見て楽しむ三角関数]

Scratch頭蓋曲線を描きます。cranioは頭蓋を意味する接頭辞です。

[頭蓋曲線]

有名な絵画の顔みたいですね。

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。a, b, c, p, qは式に出てくる係数です。スライダー表示にして値を変更できるようにしています。その他はいつもと同じ用途です。

[変数]

次に本体です。曲線を30本描くため二重の繰り返しにして、内側の繰り返しで曲線を1本描いています。角度を0度から360度まで変化させながら計算と移動を繰り返すと曲線が1本描けます。1本描き終わったら倍率を小さくし、ペンの色を変化させています。

[本体]

次に初期設定です。プログラムを実行すると最初に一度だけ呼び出されます。ペンを設定して倍率を計算します。

[初期設定]

倍率計算は曲線が描画範囲に収まるように最大の倍率を計算します。これまでの曲線では倍率をスライダー表示にしてユーザーが大きさを変えられるようにしていましたが、今回はブログラム内で倍率を計算しています。

[倍率計算]

次に準備です。曲線を1本描くために開始点を計算して移動しています。

[準備]

式はこうなっています。rは半径、a, b, c, p, qは係数、θは角度です。係数はスライダーで変更可能です。係数をいじると曲線の形が変わりますので色々試してみてください。
\[ r=a\sin(\theta)+b\sqrt{1-p\cos^2(\theta)}+c\sqrt{1-q\cos^2(\theta)} \] この式をプログラムにすると次のようになります。この式から頭蓋骨のような曲線が描けるとは不思議ですね。

[計算]

半径の計算式は長いので、一行に書くと画面からはみ出してしまいます。このため複数に分割して式の左側から順番に計算しています。半径と角度からX座標とY座標を計算し、最後に曲線がはみ出さないようにY座標を下にずらしいてます。

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

Squircle [見て楽しむ三角関数]

ScratchSquircleを描きます。square+circleの造語で、角が丸い四角です。

[Squircle]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。X, Yは曲線を描くための座標、X', Y'はX, Yを計算するときに一時的に値を保持しておくための変数、sgnは独自に定義するsgn関数の結果を保持するための変数、倍率は曲線の大きさ、角度は三角関数に与える値、回転角と角速度は曲線を回転させる度数です。

[変数]

角速度はスライダー表示にして画面上で変更可能にしています。角速度が正の値の場合は反時計回転、負の値の場合は時計回転になります。

-8度-4度-1度
-8度-4度-1度
2度3度7度
2度3度7度


次に本体です。36本の曲線を描くために二重の繰り返しにしています。曲線を一本描くごとに大きさを小さくし、回転角を更新しています。

[本体]

次に準備です。プログラム開始時に一度だけ行う処理を記述しています。

[準備]

次は「原点に移動」です。一つのSquircleを描き始める座標に移動します。

[原点に移動]

Squircleの式はこうなっています。
\[ \newcommand{\sgn}{\mathop{\rm sgn}\nolimits} x=\sqrt{|\cos(\theta)|} \times r\sgn(\cos(\theta)) \\
y=\sqrt{|\sin(\theta)|} \times r\sgn(\sin(\theta)) \] θは角度、rは倍率、sgnは引数に与えられた値の符号を取り出す関数です。この式をプログラムにすると次のようになります。

[計算]

式にもとづいてX座標Y座標を計算した後に座標を回転させると、最終的なX座標Y座標が確定します。

sgnの定義は次のようになります。与えられた値により、sgn変数に-1, 0, 1のいずれかを設定します。

[符号関数]

次に座標の回転です。(X, Y)を回転前の座標、(X', Y')を回転後の座標、回転する角度をθとすると、回転の公式は
\[ X'=X\cos(\theta)-Y\sin(\theta) \\
Y'=X\sin(\theta)+Y\cos(\theta) \] です。この式をプログラムにするとこうなります。

[回転]

移動はいつも通りです。計算の結果導き出されたX座標Y座標に移動します。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

Hügelschäffer Egg [見て楽しむ三角関数]

ScratchHügelschäffer Eggを描きます。

[Hügelschäffer egg]

曲線を描く処理の詳細は初回で説明していますので、そちらを参照してみてください。違う曲線ですが流れは同じです。

最初に変数です。aとbは式に出てくる変数です。a=6 b=4にするときれいな卵型になります。その他はいつも通りです。

[変数]

次に本体です。角度を0度から360度まで変化させながら座標を計算して移動を繰り返すとこの曲線が描けます。

[本体]

次に準備です。ペンの設定、変数の初期設定、開始座標の計算を行い、開始座標に移動しています。

[準備]

式はこうなっています。θは角度です。
\[ x= \left(\sqrt{a^2-d^2\sin^2(\theta)}+d\cos(\theta)\right)\cos(\theta) \\
y=b\sin(\theta) \] この式をプログラムにすると次のようになります。

[計算]

Xの計算は長くて画面からはみ出すので、二つに分割して計算しています。式には変数dが出てきますが、今回のプログラムでは卵型にするためにd=1とし、プログラムでは省略しています。

移動はいつも通りです。

[移動]

完成版はこちら
nice!(0)  コメント(0) 
共通テーマ:日記・雑感