Creo que SVG es mejor que el lienzo HTML5 para algunas funciones, pero no puedo imaginar una manera fácil de hacer funcionar el borrador. ¿Hay alguna forma o algún ejemplo?¿Cómo puedo implementar la función de borrador en SVG?
Respuesta
Esta es una forma realmente genial de hacerlo, pero podría simplemente imitar su herramienta de pluma estándar con un trazo blanco.
Creo que esto solo funciona cuando el fondo es blanco. ¿Hay alguna otra manera? – cnzhenyu
¿Otra forma simple? Realmente no. Podría usar rutas compuestas con múltiples rutas dentro, luego la herramienta borrador eliminaría las rutas por las que pasa. – Fibericon
@cnzhenyu: Si el fondo no es blanco, dibuja con el color que sea el fondo (suponiendo que sea un solo color, por supuesto) – musefan
Se podría volver a dibujar objetos con display
atributo establecido en "none"
Ver here
se puede utilizar el elemento de clipPath. Coloque el borrador dentro de un elemento clipPath y recorte el dibujo que desea superponer con el borrador. De esta forma, el fondo permanece visible.
<clipPath id="test">
<polyline points="298,351 302,350 307,347 313,343 320,339 329,336 343,332 357,328 374,325 389,321 402,320 416,319 428,317 439,316 447,314 455,313 462,312 467,312 471,312 478,310 482,310 485,310 486,310 487,309 490,309 491,309 493,309 494,308 495,308 497,308 497,306 499,304 501,301 502,298 504,294 505,290 506,287 508,283 509,281 512,275 513,273 513,270 514,266 516,263 517,259 517,255 518,251 520,245 521,241 521,239 521,236 521,235 521,232 521,229 521,228 520,228 516,228 513,228 508,228 502,232 494,237 487,241 478,248 466,256 452,267 435,278 421,289 408,300 394,310 386,320 375,329 368,339 362,346 356,350 352,356 347,362 344,363 341,367 341,369 340,371 340,377 339,382 337,390 335,400 330,409 326,419 322,428 318,436 314,444 312,450 310,455 307,458 307,459 307,462 309,461 312,458 314,455 317,452 321,450 324,446 326,444 332,440 337,436 349,428 364,420 376,412 390,405 405,397 421,390 436,383 452,378 470,373 483,369 501,366 513,363 527,362 536,360 541,359 544,359 548,362 554,363 563,367 577,370 587,375 602,379 617,383 633,390 655,396 674,402 697,409 714,415 733,420 748,425 759,429 767,432 770,432 771,432 773,432 777,431 783,424 792,417 802,410 813,400 827,389 843,377 866,358 884,343 898,333 909,327 920,320 927,317 932,313 935,310 938,309 940,308"
fill="none" stroke="#ffffff" stroke-width="20"></polyline>
</clipPath>
<path d="M600,329 600,325 600,321 595,317 591,310 590,306 586,304 585,301 582,298 577,296 574,294 571,293 567,290 563,290 556,287 556,287 551,286 544,285 539,285 539,285 532,285 524,285 516,283 506,283 498,283 490,283 482,285 474,287 467,289 459,291 455,293 451,293 448,296 447,296 445,297 445,298 445,300 445,301 445,302 445,304 445,305 445,306 445,309 445,312 445,316 445,320 445,325 447,329 448,332 449,335 449,337 452,340 454,344 456,346 459,348 460,352 464,355 467,356 468,359 472,360 474,362 475,363 478,363 481,363 487,366 490,367 493,367 497,367 498,367 502,367 505,367 508,367 512,367 516,367 520,367 525,367 531,367 539,367 545,367 555,367 560,367 564,367 567,367 568,367 570,367 570,366 571,364 571,363 571,362 573,362"
fill="none" stroke="#000000" stroke-width="3" clip-path="url(#test)"></polyline>
- 1. ¿Cómo implementar una función "Guardar automáticamente" o "Guardar borrador" en ASP.NET?
- 2. ¿Cómo implementar la función recordarme?
- 3. ¿Cómo implementar la función de reversión?
- 4. HTML HTML5 borrador
- 5. ¿Cómo implementar la función getch() de C en Linux?
- 6. Cómo implementar esta función en Haskell
- 7. Función del comparador Backbone.js, ¿cómo puedo implementar el orden descendente?
- 8. ¿Cómo puedo guardar el código svg como una imagen .svg?
- 9. cómo implementar curry (función parcial) en ruby
- 10. ¿Puedo usar SVG Salamander para rasterizar SVG en archivos PNG? (¿y cómo puedo hacerlo?)
- 11. borrador estándar de ISO C++
- 12. ¿Cómo puedo implementar Unix grep en Perl?
- 13. ¿Cuál es la diferencia entre un borrador de trabajo del W3C y un borrador del editor?
- 14. ¿Cómo implementar la función "Enviar comentarios" en Android?
- 15. ¿Cómo implementar la función media genérica en scala?
- 16. Cómo implementar la función virtual pura en C++
- 17. CodeIgniter: función de contraseña perdida, ¿cómo implementar?
- 18. ¿Cómo puedo implementar la interfaz Iterable?
- 19. Implementar la función de arrastrar y soltar
- 20. ¿Cómo puedo implementar la búsqueda binaria en Perl?
- 21. Cómo implementar la función "¿Eres humano?" De Stack Overflow
- 22. ios datos básicos cómo implementar la función de transacción sql?
- 23. ¿Cómo puedo implementar 'tee' programáticamente en C?
- 24. ¿Cómo puedo implementar un generador en C++?
- 25. ¿Cómo puedo implementar SlideShow en Android?
- 26. ¿Cómo puedo implementar Ruby's Array.include? en JavaScript?
- 27. ¿Cómo puedo eliminar o reemplazar el contenido SVG?
- 28. Cómo implementar la aplicación iTunes incorporada Función "Compartir archivos"
- 29. ¿Cómo implementar una verdadera función de canalización en C#?
- 30. ¿Cómo puedo superponer diagramas SVG en Google Maps?
SVG es mucho más estática que 'canvas' que _could_ realizar una función de borrador, pero sería imposiblemente lento debido a tener que volver a calcular las curvas de intersección entre la goma de borrar. ¿No puedes simplemente usar un '
El lienzo tiene algún inconveniente, también. Al igual que no puedo deshacer, rehacer ni agregar capas, etc. Y el tamaño de la base de datos es mucho más que SVG en com cases. – cnzhenyu
Es cierto. Debe ir con lo que sea mejor para la tarea que tiene entre manos. Como con casi todo, no hay una solución única; todo depende de las complejidades de tu proyecto. – Bojangles