Tuesday, January 24, 2012
Update: Here is "VX" with FreeSerifItalic. There is overlap in LibreOffice also. For the most part truetypetracer produces valid and nice input data for testing openvoronoi. But sometimes I see wiggles, and now this: It is frustrating to try to track down bugs in downstream algorithms that take this as input, and assume all line-segments [...]
Saturday, January 21, 2012
A first try at v-carving, with toolpaths produced by the ttt2medial python script.
Saturday, January 21, 2012
I tried cranking up (10-fold) the number of line-segments that are used when approximating conics and cubics with lines. The results are mostly OK, but sometimes "wiggles" or "S-curves" appear, which cause problems for the medial-axis filter. This "P" is an example: The medial axis on the right does not look correct. If we zoom [...]
Tuesday, January 17, 2012
I hacked together a few python-scripts that can be run as "filters" in EMC2. They are opened/run from AXIS and produce G-code into EMC2. The first one is ttt2ngc which simply demonstrates my C++ port of Chris Radek's truetype-tracer. The original code is a rather monolithic C-program while my C++ port is divided into smaller [...]
I've put together two graph filters that can be applied to the VD. The first one detects the interior or exterior of a polygon. When the VD is constructed the polygon boundary must be input in CW order, and any islands inside the polygon in CCW order (or vice versa). This allows running other downstream [...]
Once we have a VD it is almost trivial to calculate 2D offsets. While the VD for n line-segments takes O(n*log(n)) time to calculate, the offset-generation is a simple "march" that takes O(n) time. In this "A" example it takes 24 milliseconds to calculate the VD and less than 1 millisecond to produce all the [...]
Wednesday, January 11, 2012
There was an issue with handling collinear line-segments, which is hopefully now fixed. OpenVoronoi seems to deal OK with most characters from ttt now. I am still getting some Warnings about numerical instability from LLLSolver, possibly related to these high-degree vertices which don't look quite right (this is a zoom-in inside the circular dot of [...]
Thursday, January 5, 2012
Update: Now all the capital letters work! I wanted to test my VD algorithm on font-outlines. So I ported Chris Radek's truetype-tracer to c++ and added some python bindings. Here: https://github.com/aewallin/truetype-tracer Because my VD code cannot handle circular arcs yet, I took some old code from TTT 3.0 and made converting conics and cubics, the [...]
I've been hacking away at openvoronoi, adding support for polylines and polygons. The code I had in November works with individual non-intersecting line segments, like this: Note how each vertex in the figure above is of degree three, i.e. there are three edges incident on each vertex. There's something about the number three, or triangles, [...]
Saturday, December 17, 2011
For profiling I made a small c++ program which calculates a poisson voronoi diagram. When called through valgrind like this (under valgrind the program will run roughly 50 times slower than normal) valgrind --tool=callgrind -v ./ovd_tst --n 1000 I can then use kcachegrind to draw a call graph. I thought the nearest-neighbor grid-search (grid_find_closest_face()) would [...]