do dashed lines
This commit is contained in:
parent
0c1057df18
commit
8dad45d944
48
unfold.c
48
unfold.c
@ -97,17 +97,39 @@ edge_eq2(
|
|||||||
void
|
void
|
||||||
svg_line(
|
svg_line(
|
||||||
const char * color,
|
const char * color,
|
||||||
float * p1,
|
const float * p1,
|
||||||
float * p2
|
const float * p2,
|
||||||
|
int dash
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
printf("<line x1=\"%f\" y1=\"%f\" x2=\"%f\" y2=\"%f\" stroke=\"%s\" stroke-width=\"0.1px\"/>\n",
|
if (!dash)
|
||||||
p1[0],
|
{
|
||||||
p1[1],
|
printf("<line x1=\"%f\" y1=\"%f\" x2=\"%f\" y2=\"%f\" stroke=\"%s\" stroke-width=\"0.1px\"/>\n",
|
||||||
p2[0],
|
p1[0],
|
||||||
p2[1],
|
p1[1],
|
||||||
color
|
p2[0],
|
||||||
);
|
p2[1],
|
||||||
|
color
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// dashed line, split in the middle
|
||||||
|
const float dx = p2[0] - p1[0];
|
||||||
|
const float dy = p2[1] - p1[1];
|
||||||
|
|
||||||
|
const float h1[] = {
|
||||||
|
p1[0] + dx*0.45,
|
||||||
|
p1[1] + dy*0.45,
|
||||||
|
};
|
||||||
|
const float h2[] = {
|
||||||
|
p1[0] + dx*0.55,
|
||||||
|
p1[1] + dy*0.55,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
svg_line(color, p1, h1, 0);
|
||||||
|
svg_line(color, h2, p2, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -473,7 +495,7 @@ printf("<g><!-- %p %d %f %f->%p %f->%p %f->%p -->\n",
|
|||||||
if (!next)
|
if (!next)
|
||||||
{
|
{
|
||||||
// draw a cut line
|
// draw a cut line
|
||||||
svg_line("#FF0000", g->p[i], g->p[(i+1) % 3]);
|
svg_line("#FF0000", g->p[i], g->p[(i+1) % 3], 0);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -483,12 +505,12 @@ printf("<g><!-- %p %d %f %f->%p %f->%p %f->%p -->\n",
|
|||||||
if (f->coplanar[edge] < 0)
|
if (f->coplanar[edge] < 0)
|
||||||
{
|
{
|
||||||
// draw a mountain score line since they are not coplanar
|
// draw a mountain score line since they are not coplanar
|
||||||
svg_line("#00FF00", g->p[i], g->p[(i+1) % 3]);
|
svg_line("#00FF00", g->p[i], g->p[(i+1) % 3], 1);
|
||||||
} else
|
} else
|
||||||
if (f->coplanar[edge] > 0)
|
if (f->coplanar[edge] > 0)
|
||||||
{
|
{
|
||||||
// draw a mountain score line since they are not coplanar
|
// draw a valley score line since they are not coplanar
|
||||||
svg_line("#0000FF", g->p[i], g->p[(i+1) % 3]);
|
svg_line("#00FF00", g->p[i], g->p[(i+1) % 3], 0);
|
||||||
} else {
|
} else {
|
||||||
// draw a shadow line since they are coplanar
|
// draw a shadow line since they are coplanar
|
||||||
//svg_line("#F0F0F0", g->p[i], g->p[(i+1) % 3]);
|
//svg_line("#F0F0F0", g->p[i], g->p[(i+1) % 3]);
|
||||||
|
Loading…
Reference in New Issue
Block a user