Lo más normal es utilizar un gradiente como relleno de una figura. Eso no quiere decir que no podamos utilizar el gradiente sobre un borde.
Para poder realizar esta operación lo primero que tenemos que hacer es definir nuestro gradiente. La forma de hacer esto es la misma indistintamente de donde vayamos a utilizar este. A si que tendremos una definición de gradiente como la que sigue:
Ahora solo nos queda utilizar el gradiente como fondo del borde. Recordar que el relleno de los bordes de las figuras básicas o shapes se suele controlar con el atributo stroke.
Y para hacer referencia al gradiente hay que utilizar la función url. Esta recibirá como parámetro el nombre que le hayamos dado al ID del gradiente, precedido de una almohadilla (#). El código a utilizar sería este:
url(#rojo_naranja)
Al final tendremos el siguiente código. En este caso, aplicado a un círculo (no es que tenga nada contra el resto de figuras básicas):
Si vamos a escribir en un fichero de texto, sería una buena práctica el validar si dicho fichero existe o no. También podríamos escribir sobre el fichero directamente. Ahora que esto lo haríamos si no nos importase mucho el contenido que este tuviese.
Para validar si existe un fichero podemos leer el ejemplo Saber si existe un fichero con Java. Dicho artículo nos explica de forma detallada lo simple que esto resulta.
String sFichero = "fichero.txt";
File fichero = new File(sFichero);
if (fichero.exists()) {...}
En el caso de que no exista el fichero, nos pondremos manos a la obra para escribir sobre el fichero.
Lo primero que tendremos que hacer será crear un BufferedWriter. Esta clase nos ayuda a manejar los stream en forma de buffer con métodos muy sencillos. Este buffer necesitará saber cual es el fichero. Esto se lo proporcionamos desde la clase FileWriter.
Recuerda que la filosofía de acceso a la lectura y escritura a los ficheros, siempre es la misma. Buffer, que envuelve a Reader, que a su vez envuelve al fichero (o stream).
El código nos quedaría algo así:
BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero));
Para escribir texto nos apoyamos en el método .write() del buffer. Muy sencillo. La verdad es que no se me ocurría que texto grabar sobre el fichero, a si que, al final, vamos a volcar 10 líneas iguales ayudándonos de un bucle for.
for (int x=0;x<10;x++)
bw.write("Fila numero " + x + "\n");
No nos podemos olvidar de dos últimas cosas. Siempre que manejemos el fichero para escribir deberemos de cerrarle con el método .close().
Y lo otro, que toda la operativa de la clase java.io.* nos avisará de sus problemas de acceso a fichero, elevándonos una excepción IOException. Que habrá que capturar en alguna parte de nuestro código.
Vídeos sobre Java
Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.
Dos buenos ejemplos para empezar aprendiendo de gradientes en SVG son Circulo con Gradiente Lineal y Gradiente Lineal Vertical. Los cuales explican como hacer gradientes lineales horizontales y verticales respectivamente. A si que lo que nos queda por explicar es como hacer un gradiente lineal angular en SVG
Cuando decimos angular, lo que queremos decir es que el vector que representa la transición de los colores tiene un cierto ángulo. Dentro de la definición del gradiente lineal, la cual hacemos mediante la etiqueta <linearGradient>, no encontramos forma de definir el angulo del vector. Para poder llevar a cabo esto, solo tenemos las coordenadas de inicio y de fin del vector.
Y la forma de conseguir un angulo es que tanto las coordenadas x1 y x2, como las coordenadas y1 e y2 sean diferentes entre si.
Así, por ejemplo, un angulo de 90 grados (noroeste) lo podríamos conseguir con la siguiente secuencia de coordenadas:
Todavía nos estamos recuperando de la caída en las estadísticas de diciembre y andamos en unos porcentajes del 20% de diferencia con las estadísticas de noviembre. En concreto un -21,06% de visitas en la web. Si bien creo que la reorganización de la web no tiene nada que ver, ya que la caída es tanto de los buscadores como de otros sitios web.
Como lectura positiva podemos afirmar que entran más personas directamente al HOME y que el número de páginas que nos van enlazando va creciendo. Por lo tanto, espero estar solo en un bache.
Ahora solo queda encontrar tiempo para poder escribir un poco más.
La idea de este ejemplo es realizar una búsqueda sobre un listado de datos (presente en una lista de un formulario) partiendo de una entrada que va el usuario tecleando paulatinamente. Por ejemplo si partimos del siguiente listado de deportes
Si el usuario teclea una A o a debería de filtrar por todos aquellos deportes que empiecen por dicha letra, quedándonos…
'Atletismo ','Aerobic'
si posteriormente el usuario teclea una E o e, se filtraría por aquellos deportes que empezasen por AE, quedándonos…
'Aerobic'
Por un lado, en la parte gráfica, utilizaremos un simple formulario HTML con un campo input y una lista select.
Por otro, los datos, van a ir en la lista los almacenaremos en un array, para su fácil manejo:
lista = new Array('Atletismo ', 'Aerobic', 'Balonmano', 'Beisbol', 'Badminton', 'Baloncesto', 'Footing', 'Fútbol', 'Gimnasia', 'Voleibol');
Para cargar los datos del array en el combo del formulario utilizaremos el evento onLoad de arranque de la página, el cual recorrerá el array creando objetos del tipo OPTION que son válidos para ser introducidos en la lista del formulario.
function cargarLista() {
// Cargamos el combo
for (x=0;x < lista.length;x++)
document.formulario.miCombo[x] = new Option(lista[x]);
}
La verdadera "chicha" del ejemplo está en realizar el filtrado de datos. Para ello nos valdremos de las expresiones regulares que me permiten buscar cadenas que empiecen por un conjunto de letras.
En este caso el conjunto de letras que componen la cadena a buscar es el texto introducido en el formulario:
texto = document.getElementById("busca").value;
expr = new RegExp("^" + texto,"i");
En este caso estamos buscando expresiones regulares que empiecen por las letras de la cadena a buscar. Para indicar el principio de una cadena en una expresión regular nos servimos el carácter ^.
Una vez que he conformado la expresión regular deberé de recorrer el array en busca de las opciones que cumplan dicho criterio. Para validar la expresión regular utilizaremos su método test. Aquellas opciones que sean válidas serán introducidas previamente en el combo (partiendo de la premisa de que en cada búsqueda limpiamos por completo los datos del combo).
y = 0;
for (x=0;x < lista.length;x++) {
if (expr.test(lista[x])) {
document.formulario.miCombo[y] = new Option(lista[x]);
y++;
}
}
Todo este proceso será lanzado cada vez que el usuario pulse una tecla, evento que detectamos con onKeyUp sobre el campo input del formulario.
Código Fuente
Descárgate el código fuente de Buscar en la lista Y si te ha gustado nuestro código fuente puedes regalarnos una estrellaStar
Vídeos sobre Javascript
Disfruta también de nuestros artículos sobre Javascript en formato vídeo. Aprovecha y suscribete a nuestro canal.