Added outline_2d() and bold_2d()
Wrapper modules for rendering outline and bold text from a set of font points and paths.
This commit is contained in:
parent
1a31137eee
commit
adb5b65655
31
fonts.scad
31
fonts.scad
|
@ -1,6 +1,37 @@
|
||||||
// Font Functions
|
// Font Functions
|
||||||
// Encoding from http://en.wikipedia.org/wiki/ASCII
|
// Encoding from http://en.wikipedia.org/wiki/ASCII
|
||||||
|
|
||||||
|
module outline_2d(outline,points,paths,width=0.1,resolution=8) {
|
||||||
|
if(outline && resolution > 4) {
|
||||||
|
for(j=[0:len(paths)-1]) union() {
|
||||||
|
for(i=[1:len(paths[j])-1]) hull() {
|
||||||
|
translate(points[paths[j][i-1]]) circle($fn=resolution,r=width/2);
|
||||||
|
translate(points[paths[j][i]]) circle($fn=resolution,r=width/2);
|
||||||
|
}
|
||||||
|
hull() {
|
||||||
|
translate(points[paths[j][len(paths[j])-1]]) circle($fn=resolution,r=width/2);
|
||||||
|
translate(points[paths[j][0]]) circle($fn=resolution,r=width/2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
polygon(points=points,paths=paths);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module bold_2d(bold,width=0.2,resolution=8) {
|
||||||
|
for(j=[0:$children-1]) {
|
||||||
|
if(bold) {
|
||||||
|
union() {
|
||||||
|
child(j);
|
||||||
|
for(i=[0:resolution-1]) assign(dx=width*cos(360*i/resolution),dy=width*sin(360*i/resolution))
|
||||||
|
translate([dx,dy]) child(j);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
child(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function 8bit_polyfont(dx=0.1,dy=0.1) = [
|
function 8bit_polyfont(dx=0.1,dy=0.1) = [
|
||||||
[8,8,0,"fixed"],["Decimal Byte","Caret Notation","Character Escape Code","Abbreviation","Name","Bound Box","[points,paths]"]
|
[8,8,0,"fixed"],["Decimal Byte","Caret Notation","Character Escape Code","Abbreviation","Name","Bound Box","[points,paths]"]
|
||||||
,[
|
,[
|
||||||
|
|
Loading…
Reference in a new issue