Wednesday, April 30, 2008

Remotion of self-intersecting points


Now the simplifying algorithm I have created is perfect. Well ... at least I couldn't find a counter example in my massive and complex tests.

Self-crossing shapes are a nightmare for a lot of vector based algorithms. Now, after hard work, I can transform any self-crossing shape in a set of non self-crossing shapes keeping the original math properties.

The example is simple on purpose. It shows a very clear case of simplification.

First image shows the original polygon. Second image shows the result after using my algorithm. Each resulting polygon has a different border color.

Monday, April 28, 2008

Curves yet



Now I can make a curve based on a set of line segments.

The emphasis is on curve continuity and format as closer as possible to original poly line.

The number of tools depending on a strong implementation of curves is uncountable. I'm trying to construct strong foundations for my software.

Friday, April 25, 2008

My friends curves



Now I can join a group of points in a continuous way, no mater how strange this points are.


I'm improving my dealing about splines. I need more power to achieve another desired tool: one to transform bitmaps in vector based objects.


More about curves soon.

Monday, April 21, 2008

Some tests - putting things together



I'm doing some tests about paths, warping, vector oriented bitmap filling and so on.

In some cases my anti-aliasing techniques are weak for a perfect result. I will try to create another approach in future. I will return to object simplifying problem soon.

Picture shows a kind of filling using a bitmap and based on a 100 points star.

Saturday, April 19, 2008

Simplifying - the mission



There is just one polygon in picture.

Before simplification: 1 polygon with 43 sides; 346 self-crossing points.

After simplification: 62 calculated polygons; zero self-crossing points.

But it's far from the end of work ... The new polygons need a complex priority engine to keep together the properties from the original polygon.

I'm trying to find a solution.

Thursday, April 17, 2008

Simplifying objects


The picture shows only one polygon. It has 14 sides and 34 self-intersection points. I'm developing an algorithm to process this kind of very complex and degenerated object and transform it in a group of simpler shapes.

The big point is: the group of calculated objects need to keep the topological properties of the original one.

When I have this kind of tool, I can make indirectly all set operations over self-intersection objects.

In the screenshot, different colors illustrate a method for degeneration reduction been tested.

Hard work these days.

Monday, April 14, 2008

Thick lines



I have just removed some minor bugs from my renderer concerning drawing of thick lines.

Picture shows a shape correctly drawn with a thick blue border.

Like I'm dealing with this part of the renderer, I will prepare some new functionalities that can be useful when thick lines are drawn.

Saturday, April 12, 2008

Self-intersecting polygons


I'm trying to make my set operations work over polygons with self-intersections. It's has been a hard work, cause I lost a lot of tricks/assumptions used in my old algorithms.

It's possible to make it using pixel combinations among the drawn polygons and after making some kind of bitmap vectorization, but I don't want it. I want to make it just by euclidean geometry.

I'm making my model, my algorithm ... Sometimes it's hard even to make tests. Let's play a little bit more.

PS: image was drawn using Windows GDI.

Wednesday, April 9, 2008

Set operations again



Sometimes is hard to make algorithms to satisfy the very much generic situations. I intend reformulate my data structures and algorithms to allow set operations over polygons, curves, multi-curves and shapes.

Now is time to think about that, cause I'm going to project and code multi-curves.

My algorithms for set operations work well for polygons (the orthodox case). The picture shows in thick blue the difference between two very weird polygons.

Anyway, I still need to solve a very degenerated case for polygons before try to generalize for more complex objects: polygons with self-intersections. Let's work.

PS: this screenshot was drawn using Windows GDI.

Monday, April 7, 2008

Splines on the scene



I'm improving my sources concerning curves. Considering their math properties, splines are the classical choice.

I have been trying to do a very robust and modularized implementation. I'm preparing an infrastructure that will be used in future for interactive drawing of curves by the final user.

Interactive drawing is a very interesting challenge that asks special planning, cause it can require immediate answers for nontrivial operations.

The picture shows a multi-curve created by "self point parametrization". A curve can be created by "control point parametrization" as well.

Thursday, April 3, 2008

Warping shapes 3



Now I can use heterogeneous shapes inside unidirectional warping fields. The calculations are more robust too.

My warping tools are enough for now ...

I need to pay attention to curves again.