これは実際にはこの質問に対する直接的な回答ではありません(既に回答が既にあります)が、このアルゴリズムを3Dで実装したい人には興味があるかもしれません。
Pythonを使用してブレンダーで3Dスパイラルを生成するためにこのアルゴリズムを実装する必要がありました(2DでPILまたはMatplotlibを使用した描画に簡単に変換できました)。だからここにアルゴリズムと結果があります:
import bpy
from math import cos, sin
S = bpy.context.scene
def add_archimedian_spiral( size = 0.1, length = 500, height = 1, name = 'archispiral' ):
mesh = bpy.data.meshes.new( name = name )
o = bpy.data.objects.new(name, mesh)
o.location = (0,0,0) # place at object origin
S.objects.link( o )
z = 0
verts = []
for i in range( length ):
angle = 0.1 * i
x = ( 2 * size * angle ) * cos( angle )
y = ( 2 * size * angle ) * sin( angle )
z += i / 10000 * height
verts.append((x,y,z))
edges = []
for i in range( len( verts ) ):
if i == len( verts ) - 1: break
edges.append((i, i+1))
mesh.from_pydata( verts, edges, [] )
add_archimedian_spiral( size = 0.2, length = 500, height = 6 )
int
です。特に、dx
そしてdy
おそらく0取得します