Супер функция, попозже сделаю поверхность на вид сплошной и на все вертексы.
Handle CreateSpring(double torrad, double inrad,int elements,int segments,int vitki,double shagvitka){
Handle mesh=xCreateMesh();
Handle meshsurf=xCreateSurface(mesh);
int i,h,x;
double x1,y1,z1;
//vertex creation
for (i=0;i<=(vitki*elements);i++){
for (h=0;h<=segments;h++){
double deg1,deg2;
//перевод в радианы
/*
1градус=3,1417/180
*/
deg1=i*6.2834/elements;
deg2=h*6.2834/segments;
x1=torrad*sin(deg1)+inrad*cos(deg2)*sin(deg1);
y1=torrad*cos(deg1)+inrad*cos(deg2)*cos(deg1);
z1=inrad*sin(deg2)+shagvitka*i/elements;
xAddVertex (meshsurf,x1,y1,z1,inrad*h/segments,inrad*i/elements);
};
};
int v0,v1,v2,v3;
int qvert = xCountVertices(meshsurf)-1;
for (x=0;x<=(vitki*elements);x++){
for (i=0;i<=segments;i++){
v0=i+segments*x;
v1=v0+1;
v2=v0+segments;
v3=v2+1;
if (v3<=qvert) {
xAddTriangle (meshsurf,v2,v0,v3);
xAddTriangle (meshsurf,v0,v1,v3);
};
};
};
xUpdateNormals (mesh);
return mesh;
};
P.s. Посоветуйте математическую либу. Щоб там оперции с векторами были, штоб много математики разной. И либу, которая синусы косинусы резко считает, пусть и с погрешностью.
предлагать решать sin(x)=x-x^3/3!+x^5/5!-x^7/7!... до полного самоудвлетворения не надо
http://alglib.sources.ru/?