または、なでしこ3の楕円描画がようやく分かった話。
あるいは、以前書いたメダカboisの時の楕円描画の間違いに今さら気付いた話。
発端
なでしこの「楕円描画」がよく分かんない。説明がない。「開始角」とか「終了角」ってなんなんだよ・・・と、てきとーな価を入れていくと、1とか2とかだと欠けている。7でようやく、全き楕円となった。・・・・・・ラジアンか!
そりゃ、普通の角度のつもりで90とか入れても、見た目普通の楕円になっちゃうワケですよ。
以前の記事で、てきとーに楕円描画でメダカを作ったけど、「回転」はラジアン変換したら希望どうりの動作になるということにまで気付いていたのに、なんで終了角は360とかにしてんの? ほんとバカなの?!(/ω\) (※既にコッソリ修正しちゃいましたw)
まあまあ、そういうわけで、今さらですけど結局ラジアンって何なの? という。
現状知っているのは、プログラムで角度を扱う時は、ラジアン変換しなきゃないことが結構ある
ってことと、なでしこで、
360をラジアン変換して言う
とやると、6.283185307179586
と教えてくれるってことだけ。
うぃきぺでぃあ先生に教えを請う
円周上でその円の半径と同じ長さの弧を切り取る2本の半径が成す角の値と定義される。
弧度(こど)とも言い、平面角の大きさをラジアンで測ることを弧度法と呼ぶ。
うっ・・・さっぱり1ミリも分かんない(涙)
むじゅかしい言い回しに心折れそうになりながら、がんばる。
横文字は苦手だが、ベツに日本語が堪能というわけでも無いでね。
日本語なら何でも理解出来ると思うなよ・・・いやまて!
弧の長さから角度を求めるから弧度
結局、コレです! 日本語素晴らしい!!
ラジアンは「円の半径に等しい長さの弧の中心に対する角度」
180° は弧度法においては π rad であり、360° は 2π rad である。
さらーっとこう書かれると目が滑ってしまうけど、ようするに1ラジアンは、
「半径」と同じ長さの「弧」を持つ扇形の中心の「角度」
ってことになりますかね?
radはラジアンの単位だから、
180°はπ、一周360°は2π
てだけのコトでしたね。
おぉ! πは3.14だから、×2は6.28。
ちゃんとラジアン変換した価になってるじゃないですか!(当たり前;)
#なでしこで説明図を描くよ!
こんな感じ?
なでしこで普通に書いた場合、開始は右端で、そこから時計回りということになってるらしい。
そして、半径が1ならば、「弧の長さ=ラジアン」だし、
ラジアンは「弧の長さ÷半径」で求められる、
・・・と言うことラシイ。
ラジアン=弧/半径
#コード
半径=120。中点x=半径+10。中点y=半径+10。
終了角=2.5。r=半径/40。 //ここを書き換えてお試し。
灰色に線色設定。「rgba(0,0,0,0)」に塗り色設定。1に線太設定。
[中点x,中点y]に半径の円描画。
[0,中点y]から[中点x*2,中点y]まで線描画。
[中点x,0]から[中点x,中点y*2]まで線描画。
#弧
青色に線色設定。4に線太設定。
[中点x,中点y,半径,半径,0,0,終了角,0]の楕円描画。
#角度
緑色に線色設定。2に線太設定。
[中点x,中点y,半径/4,半径/4,0,0,終了角,0]の楕円描画。
#半径
赤色に線色設定。3に線太設定。
[中点x,中点y]から[中点x+半径,中点y]まで線描画。
半径と(終了角を度変換)で弧交点取得。
x=それ[0]+中点x。y=それ[1]+中点y。
黒色に線色設定。
[中点x,中点y]から[x,y]まで線描画。
●(半径と角度で)弧交点取得
変数 x=半径*COS(DEG2RAD(角度))。
変数 y=半径*SIN(DEG2RAD(角度))。
[x,y]で戻る。
ここまで。
#文字
「bold 16px sans-serif」に描画フォント設定。
赤色に塗り色設定。
[中点x+10,中点y-5]へ「半径(r)={r}」を文字描画。
青色に塗り色設定。
[中点x+60,中点y+80]へ「弧の長さ(L)={(r)*終了角}」を文字描画。
緑色に塗り色設定。
[中点x+半径/4,中点y+25]へ「ラジアン」を文字描画。
[中点x+半径/4,中点y+45]へ「 (rad)={終了角}」を文字描画。
動作確認は、なでしこ3簡易エディタ-タートルグラフィックス用で。