Сделал из тора более полезный объект. Легко анимировать манипулируя последним значением.
Function CreateSpring(torrad#,inrad#,elements,segments,vitki,shagvitka#)
mesh=CreateMesh()
meshsurf=CreateSurface(mesh)
For i=0 To vitki*elements
For h=0 To segments
x1#=torrad*Sin(i*360/elements)+inrad*Cos(h*360/segments)*Sin(i*360/elements)
y1#=torrad*Cos(i*360/elements)+inrad*Cos(h*360/segments)*Cos(i*360/elements)
z1#=inrad*Sin(h*360/segments)+shagvitka*i/elements
AddVertex meshsurf,x1,z1,y1,inrad*h/segments,inrad*i/elements
Next
Next
For x=0 To vitki*elements
For i=0 To segments
v0=i+segments*X
v1=i+segments*X+1
v2=i+segments*X+segments
v3=i+segments*X+segments+1
If v3<=CountVertices(meshsurf)-1 Then
AddTriangle meshsurf,v0,v2,v3
AddTriangle meshsurf,v1,v0,v3
EndIf
Next
Next
UpdateNormals mesh
testtex=CreateTexture(256,256,256)
SetBuffer TextureBuffer(testtex)
Color 127,127,127
Rect 0,0,128,128
Rect 128,128,128,128
Color 235,240,235
Rect 0,128,128,128
Rect 128,0,128,128
SetBuffer BackBuffer()
ScaleTexture testtex,0.2,0.2
EntityTexture mesh,testtex,0,0
Return mesh
End Function
Слегка недоработан последний сегмент. Если вызывать в цикле заглючит из-за создаваемой текстуры