2009-05-09 16 views
5

¿Hay alguna forma de crear rutas en El Cairo combinando dos rutas juntas mediante operaciones booleanas como Unión, Diferencia e Intersección? Estoy trabajando en una aplicación de gráficos vectoriales que utiliza Cairo para hacer su renderizado y me gustaría darles a mis usuarios la posibilidad de combinar rutas de esta manera, pero no puedo encontrar la manera de hacerlo en El Cairo.Operaciones booleanas en las rutas de El Cairo?

Respuesta

0

La combinación de rutas con operadores no tiene ningún sentido para mí. ¿Qué obtienes de "línea Y curva O arco"?

En cambio, se puede aplicar mediante el uso de compositing operatorscairo_set_operator(): se establecerá la forma en la operación de dibujo actual (siendo que cairo_fill(), cairo_stroke() o lo que sea) debe ser mezclado con el antiguo contenido de la superficie.

+1

Un ejemplo de lo que quiero decir es la forma en que Inkscape combina rutas a través de operaciones booleanas: http://www.usinginkscape.com/node/34. Supongo que la mayoría de esos efectos podrían lograrse a través de una serie de operadores de composición, excepto que los lugares donde las trayectorias de las dos figuras se cruzan no necesariamente tienen las uniones de línea apropiadas. –

+0

Todavía no entiendo la pregunta: inkscape en sí usa cairo desde la versión 0.46: http://wiki.inkscape.org/wiki/index.php/Release_notes/0.46#Speed_and_interactivity – ntd

2

No he encontrado una manera de hacer esto con las bibliotecas de cairo. Pero es una característica que he estado buscando también. Definitivamente sería útil cuando (por ejemplo) acariciando la combinación de dos caminos: los operadores de composición mencionados por ntd no parecen ser capaces de hacer esto.

Mientras tanto, intento escribir scripts para inkscape y dejar que inkscape realice la unión/diferenciación. Aceptable por el problema en el que estoy trabajando pero definitivamente no por el tuyo. ¿Has tenido suerte, ya sea con El Cairo o con cualquier otra biblioteca svg? Después de un par de días de búsqueda en Google, no parece ser trivial:/

+0

ps - la ruta intersecta/combina/se superpone en el sitio de El Cairo como posible proyecto de verano de código http://cairographics.org/summerofcode/ideas/ – ImAlsoGreg

Cuestiones relacionadas