|
> No.1892[元記事へ]
山中和義さんへのお返事です。
> 内部の正n角形の大きさを計算するのは、簡単にはいかないようです。
対象とする図から直線2本を選び出し
直線の方程式から交点を求める
LET N=7
LET X1=COS(PI/2) !'半径1とする 頂点1番
LET Y1=SIN(PI/2)
LET X2=COS(PI/2+2*PI/N) !'頂点2番
LET Y2=SIN(PI/2+2*PI/N)
LET X3=COS(PI/2+2*PI/N*2) !'頂点3番
LET Y3=SIN(PI/2+2*PI/N*2)
LET XN=COS(PI/2+2*PI/N*(N-1)) !'頂点N番
LET YN=SIN(PI/2+2*PI/N*(N-1))
!'頂点1と頂点3を結ぶ直線,頂点2と頂点Nを結ぶ直線との交点
CALL CROSS(X1,Y1,X3,Y3,X2,Y2,XN,YN,XX,YY)
LET RR=SQR(XX^2+YY^2) !'原点からの距離(比率)
SET WINDOW 0,400,0,400
LET CX=200 !中心
LET CY=200
LET R=200 !半径
LET R2=R*RR
DIM PX(0 TO 2*N-1),PY(0 TO 2*N-1) !正n角形の頂点列 ※正2n角形と考える
FOR i=0 TO N-1 !凸側
LET K=2*i
LET T=2*PI*K/(2*N)
LET PX(K)=CX+SIN(T)*R !※X軸とY軸を入れ替える
LET PY(K)=CY+COS(T)*R
NEXT i
FOR i=0 TO N-1 !凹側
LET K=2*i+1
LET T=2*PI*K/(2*N)
LET PX(K)=CX+SIN(T)*R2
LET PY(K)=CY+COS(T)*R2
NEXT i
SET AREA COLOR "RED"
MAT PLOT AREA, LIMIT 2*N: PX,PY
END
EXTERNAL SUB CROSS(X1,Y1,X2,Y2,X3,Y3,X4,Y4,X,Y)
!'点(X1,Y1)と点(X2,Y2)を結ぶ直線
!'点(X3,Y3)と点(X4,Y4)を結ぶ直線
!'との交点(X,Y)を求める
LET A=(Y2-Y1)/(X2-X1)
LET B=(Y4-Y3)/(X4-X3)
LET X=(Y3-Y1+A*X1-B*X3)/(A-B)
LET Y=A*X+Y1
END SUB
|
|