2016-09-21 3 views

Antwort

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 

Sie können dies einige vereinfachen, wenn Sie wissen, werden immer nur 8 Punkte mit etwas wie:

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 

mit x x/y des Punktes 45 Grad und 80 Einheiten sein weg vom Ursprung

1

click this pic for more clarity

im Bild oben.

Koordinaten 1,2,3,4,5,6,7,8 sind äquidistante Punkte auf einem Umfang des Kreisradius R und sein Zentrum ist bei X (0,0)

nehmen das Dreieck XLZ, seine aright bei L abgewinkelt,

Lassen LZ = H, LY = A

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

seit XLZ abgewinkelt, XZ square = quadratischer XL + LZ square

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

da diese 8 Punkte machen einen Achteck theta = 360 °/8 = 45 °

tan 45 ° = h/XL = h/RA => 1 = h/RA => h = RA ---- -2

Z-Koordinaten sind (RA, h) => (H, h)

aus den Gleichungen 1 und 2

R square = h + h square square => 2 h square = R Quadrat => h = R/sqrt 2

so die Koordinaten an Punkt 2 (Z) = (R/sqrt2, R/sqrt2)

verbleibenden leicht abgeleitet werden können, wie sie sind oppside nur

So Alle Koordinaten sind

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)

Verwandte Themen