前回は、円周をNで割った角度を線で結ぶアルゴリズムで描きました。
すると、Twitterにて、正2.5角形なる存在を知る。
これぞ一日一創的わらしべ長者!
正N角形の定義を、下記をすべて満たす多角形とする。
- すべての辺の長さが等しい
- すべての内角が等しい
- 内角が(180-360/N)度、ただしN>=2
すると、実は、Nは整数ではなくても描画できてしまう。
例えば、N=2.5とすると、内角は36度となり、描画すると星型があらわれる!
N=2.05、正2.05角形は、41角ある多角形(自己交叉多角形とも呼ぶらしい)
N=2.11、正2.11角形だと、211角。
ちょうどN=3になると、無事おなじみ正三角形!
ひとつ進めた、正3.01角形
タップや上下キーで自在に増減できるアプリ「equilateral-ex」
(タップ or クリック or キーの上下 で、変更できます)
下限はN=2、下回ると内角がマイナスになってしまいます。この線分を多角形と呼ぶかどうかは定義次第。
今回のアルゴリズムは定義に忠実に、内角に沿って曲がって線分を描画を繰り返すもの。
最初は始点からはじめて終点に戻るまでループとしていましたが、もうちょっとスマートにいきたい。
小数2桁の正N角形の角の数Cを下記のアルゴリズムで求めました。
N*100を因数分解する
100の因数、2,2,5,5をあれば取り除く
残った数をすべてかけた数が、角の数C
(もっとスマートな方法がありそうな予感ですが、ひとまず十分なパフォーマンスが出たので今回は良し)
JavaScriptのプログラムだとこの部分(詳細はアプリでソースを表示してみてください)
var getCorners = function(n) { var d = Math.floor(n * 100 + 0.5); var fs = getFactors(d); removeFromArray(fs, [ 2, 2, 5, 5 ]); return calcMultiple(fs); };
アプリ上の「角」、英語 equilateral の lateral は辺だったので変更。
コンピューターを変えるプログラミング!
JavaScriptを始めるのに、VSCodeをオススメすることにします。
決め手は、実行がIchigoJam BASICと同様、「F5」なところ。
さすが、BASICからスタートした、Microsoft製!
「VSCodeで始める、お手軽JavaScript」は、また後日まとめて、Hana道場でIchigoJamを学んだこども達や、IT系部活な高専生たちに試してもらおうと思います。
「高専IT系部活 #kosenit Advent Calendar 2018」
各地の高専のIT系部活の事情がとても勉強になります。
「逆求人にいく全高専生に送る、好印象持たれやすいコツ - みずきちの甘め日記。」
沖縄高専ICT委員会のOB、jigインターンのOBでもある、みずきちさん。(*OBで統一/Boyの意味はありません)
IT系部活出身の新社会人からの視点で、高専生へのアドバイス。
高専プロコンなどで選ばれる側ばかりでなく、高専時代に小中学生向けのコンテストを主催し選ぶ側を体験してみるのも、オススメです。
「宇部高専コンピュータ部の今までとこれから - Theories of Pleiades」
宇部高専のはすみくんさん。なんと総勢53名、宇部高専コンピュータ部についての紹介。
3年生のときからのプログラミング部としての立て直しストーリーがすごい!
中国地区高専コンピュータフェスティバル(コンフェス)というローカルなイベントがあるのも楽しそう。
課題などもどんどん共有し、いい解決方法を共有していくといいですね。
「北九州高専 コンピュータ研究部の紹介 - 共産趣味情報系高専生の日記」
北九州高専コンピュータ研究部「コン件」のトミーさん、jigインターンOBでもあります。
ここにもローカルな大会「九州アプリチャレンジ・キャラバン」が登場。
活躍の場、あればあるほど燃えますね!(今年の受賞もおめでとう!)
部室の様子が写真付き、過去の高専プロコン競技部門を1年生向けの練習に使っているのも楽しそう。
こういう情報見て、中学生が入りたい!といってくれるはず。
ゆっくり進む学校のプログラミングの授業を先取りして、一気に学べる環境、いいですね!
イラスト部門もあるのはデザインが重要になっている昨今、強みかも。
コミュニケーションツールに関する悩み、どこもいろいろありますね!
「一関高専電子計算機部を支える〇〇 - Qiita」
一関高専電子計算機部「電算部」で使っているいろいろツールの紹介。
無料で使えるツールがありすぎて逆に迷うくらいですが、ひとまずみんなで楽しく品評するつもりで使って、レポートを共有するのも他のIT系部活の人に役立つ、立派な活動!
参加いただいた方々、ありがとう!
まだ若干の余裕があるので、ぜひこの機会に楽しい知識共有、お試しください。