m:角の数
n:何回転してもとにもどるかの数
m/n角形
m/n角形は、その多角形の上を歩くとして、n周で、m回角を曲がるような多角形という感じだと思っている。
#ちょっと強引だけど、1周(360度)するのにm/n回角を曲がるような多角形と思っている。
- 3角形
例えば、
3角形は、3つ角があって、1周して元の点にもどる。
このとき、1つの角で向きを変える角度(外角)は
360÷3=120度
- 5/2角形∽5/3角形
5/2角形は、5個角があって、2周して元の点にもどる。
このとき、1つの角で向きを変える角度(外角)は
360×2÷5=144度
ということで、ちゃんと144度ずつ曲がったら★になるのだ!
作図
5/2角形(5/3でもいいけど)を分度器ないけどきっちり描きたかった。せっかく描いたし、やり方忘れるからメモっておこう。
点0から点1は辺の長さ100とかで描くよね。
点2の座標が知りたいわけだけど、
点1'なる同じ長さだけ延長した点を外角分だけ回転したやつだから、
点2の座標 X[2],Y[2]は、点1を原点として考えると
X[2] = 100*cos(0-144)
Y[2] = 100*sin(0-144)
になるよ。0度から-144度に回転しているからね。極座標ね。
# 極座標(r,θ)は、x=r*cosθ,y=r*sinθだった
だから一個前の点1 の座標X[1],Y[1]で表すと、
X[2] = X[1] + 100*cos(0-144)
Y[2] = Y[1] + 100*sin(0-144)
で、次
点3の座標 X[3],Y[3]は、点2を原点として、点2'をまた-144度回転してるから、
X[3] = X[2] + 100*cos(-144-144)
Y[3] = Y[2] + 100*sin(-144-144)
だね。
ということで帰納法で
deg[i]= deg[i-1]-144;
X[i]=X[i-1] + 100 * cos(deg[i-1]-144)
Y[i]=Y[i-1] - 100 * sin(deg[i-1]-144)
という感じです。
#ここでY座標は、マイナスにしているのは、
#SVGなる図を描くタグで左上が原点で、Y座標は↓がプラス方向なので。
SVGで描いたサンプルはここ。
0 件のコメント:
コメントを投稿