1,先花个圆: detail模式执行。
#define XY 0x00
#define XZ 0x01
#define YZ 0x02
#define pi 3.1415926
#define close 0x01
#define unclose 0x00 vector center = {,,};
float r = ; void drawCicle(vector center;float r;int segments;int PLANE;int isClose)
{ for(int i=;i<segments;i++)
{ if(PLANE == XY)
{
float x = r * cos( * pi / segments * i) + center.x;
float y = r * sin( * pi / segments * i) + center.y;
vector p = set(x,y,);
addpoint(geoself(),p);
}
else if(PLANE == XZ)
{
float x = r * cos( * pi / segments * i) + center.x;
float z= r * sin( * pi / segments * i) + center.y;
vector p = set(x,,z);
addpoint(geoself(),p);
}
else
{
float y = r * cos( * pi / segments * i) + center.x;
float z= r * sin( * pi / segments * i) + center.y;
vector p = set(,y,z);
addpoint(geoself(),p);
}
}
if(isClose)
{
int aprim = addprim(,"poly");
for(int i=;i<segments;i++)
{
addvertex(geoself(),aprim,i);
}
} } drawCicle(center,r,,YZ,close);
2,花外接圆:
.