¿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
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.
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:/
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
- 1. Operaciones booleanas
- 2. Operaciones booleanas en polígonos rectangulares
- 3. JavaScript Curve Library con operaciones booleanas
- 4. Haskell: operaciones booleanas no estrictas
- 5. Objetos gráficos SVG/vector operaciones booleanas (unión, intersección, sustracción)
- 6. Cómo realizar operaciones booleanas elemento prudentes en matrices numpy
- 7. algoritmo - minimizando las expresiones booleanas
- 8. Gradiente Radial de El Cairo
- 9. Grandes imágenes con el cairo
- 10. SQL de las operaciones
- 11. Cómo instalar El Cairo en Windows
- 12. Evaluación de las variables booleanas PL/SQL en Oracle Forms
- 13. ¿El Cairo está acelerado en el back end de Opengl?
- 14. ¿Cambiar las operaciones de diario en .NET?
- 15. Haskell, GHC, win32, cairo
- 16. Mejorando el rendimiento de las operaciones en una matriz NumPy
- 17. Biblioteca para operaciones de polígono
- 18. Uso de las regiones de El Cairo en python con gi.repository
- 19. Cómo manejar ~ en las rutas de archivos
- 20. Integración de Cairo y Qt
- 21. opciones booleanas de las opciones del programa boost
- 22. ¿La minimización de las expresiones booleanas NP-Complete?
- 23. ¿Cómo uso '~' (tilde) en el contexto de las rutas?
- 24. ¿Las operaciones más caras en PHP?
- 25. analizador de expresiones booleanas en java
- 26. Las variables booleanas no siempre son falsas por defecto?
- 27. .load() y las rutas relativas
- 28. ¿Cómo establecer correctamente las rutas de ejecución, las rutas de búsqueda y los nombres de instalación?
- 29. ¿Cómo cambiar las rutas globalmente?
- 30. ¿Están permitidas las operaciones estándar de iterador?
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. –
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