2016-09-21 8 views

答えて

0
r = 80 
numPoints = 8.0 
points = [] 
for index in range(numPoints): 
    points.append([r*math.cos((index*2*math.pi)/numPoints),r*math.sin((index*2*math.pi)/numPoints)]) 
return points 

あなたはいつものようなものでのみ8点を持ってしようとしている知っていれば、あなたはいくつかこれを簡素化することができます。xがポイントのx/yの45度と80個の単位であることを

r = 80 
numPoints = 8 
points = [] 
x = (r*math.sqrt(2))/2 
points = [[0,r],[x,x],[r,0],[-x,x],[-r,0],[-x,-x],[0,-r],[x,-x]] 
print points 

原点から離れ

1

click this pic for more clarity

上の画像インチ

は、(0,0)

三角形XLZを取る円半径Rと中心の円周上の等間隔点がXであるれる1,2,3,4,5,6,7,8-座標Lで傾斜し、その当たり前は、

、LZ = Hレット XLZが直角であるため、LYは

XL + LY = R => XL + A = R => XL = R-A 

を= XZ角= XL正方形+ LZ広場

   R square = (R-A) square + h square ————1 

これらの8点は八角形シータ= 360°/ 8 = 45°

日焼け45°= H/XL = H/RA => 1 = H/RA => H = RA ----を行うため-2

Z座標である(RA、H)=>(H、H)

式1及び2

R二乗= H広場+ H広場=> 2時間平方= Rから平方=> h = R/sqrt 2

したがって、ポイント2(Z)= (R/SQRT2、R/SQRT2)彼らはある

は、したがって、すべての座標はoppsideとして

を容易に導出することができる残り

1(0、R) 2(R/SQRT2、R/SQRT2) 3(R、0) 4(-R/SQRT2、R/SQRT2) 5(-R、0) 6(-R/SQRT2、-R/SQRT2) 7(0、-R) 8(R/sqrt2、-R/sqrt2)

関連する問題