-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
//----------------------------------------------------------------
// FUNCTION svg_polygon
//----------------------------------------------------------------
void svg_polygon(svg* psvg, double cx, double cy, float radius, int nsides, char* fill, char* stroke, int strokewidth ){
//cx,cy ==center point
//a constant defined in math.h M_PI==3.141593
float xi, yi=0.0;
if (nsides<3){
printf("Error: Too Few Sides\n");
exit(0);
}
//start building the polygon:
appendstringtosvg(psvg, " <polygon style="fill:");
appendstringtosvg(psvg, fill);
appendstringtosvg(psvg, "; stroke:");
appendstringtosvg(psvg, stroke);
appendstringtosvg(psvg, "; stroke-width:");
appendnumbertosvg(psvg, strokewidth);
appendstringtosvg(psvg, "" points='");
//calc x,y point coordinates. trig functions take radians
for (int i =1; i < nsides+1; i++){
xi= cx + radius * cos((2*M_PI/nsides) * i);
appendnumbertosvg(psvg, xi);
appendstringtosvg(psvg, ", ");
yi= cy + radius * sin((2*M_PI/nsides) * i);
appendnumbertosvg(psvg, yi);
appendstringtosvg(psvg, " ");
printf("%f , %f\n ", xi, yi);
}
printf("\n");
//close polygon
appendstringtosvg(psvg, "' />\n");
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels