わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

D3.jsを使って,正多角形を描画

いきなりですが問題です.

1辺の長さが1の正三角形を図示してください.

1辺の長さが1の正九角形を図示してください.

使用する道具について,定規・コンパスに限定しません.パソコンを使うことにします.ただし「1辺の長さが1」を1ピクセルとすると,どの正多角形も1点になってしまい,良くありませんので,1辺の長さは100ピクセルに変えておきます.
といったところで解答です.正三角形と正九角形の2つだけにする必要性はありませんので,正三角形から正十二角形まで,中心を同じとし,底辺をつくるようにして,並べました.

トライアングル3分割と同様に,D3.jsを使って作成しました.ソースは以下からご覧ください.

求め方の概略を書いておきます.1辺の長さが1の正n角形について,外接円の半径をrとします.外接円の中心と,正n角形の隣り合う2点とを結ぶと,辺の長さがr,r,1で頂角の大きさが[tex:\frac{2\pi}{n}](弧度法)となる二等辺三角形を得ます.頂角の2等分線を引いて直角三角形をつくれば,三角比から[tex:r\sin\frac{\pi}{n}=\frac{1}{2}]となり,ここからrを求めます.図示においてn個の頂点は,([tex:r\sin\theta_k], [tex:r\cos\theta_k])とします.ここで[tex:\theta_k=\frac{\pi}{n}(2k+1)] (k=0,1,...,n-1)であり,y軸は下向きを正にとります.