Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 10-mar-2006, 12:20   #1 (permalink)
msi
msi ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2005
Mensajes: 66
Dibujar línea senoidal entre 2 puntos

Hola, estoy intentando dibujar una línea senoidal que una 2 coordenadas del ratón. Se como pintar líneas rectas entre esos 2 puntos pero ahora quería hacer esa línea de forma curvada o en zigzag.

Todos los ejemplos que he visto son sin especificar coordenadas y se limitan a recorrer un for de 0 a un valor y dibujar los puntos senoidales, pero claro, mis líneas son libres (la dirección la elige el usuario).

De todas las maneras que he visto, tengo logrado que pinte algo desde la coordenada origen a la destino pero no termino de crear la curva periódica.
Os dejo el código ya que no tengo idea de los parámetros a poner:

grafico2d = (Graphics2D) grafico;
grafico2d.setStroke(new BasicStroke(3.0f));
GeneralPath p = new GeneralPath(GeneralPath.WIND_EVEN_ODD);
p.moveTo(x1,y1);
p.moveTo(x2,y2);

p.curveTo(0.0f,0.0f, x2,y2, x1, y1);
grafico2d.draw(p);
repaint();


Supongo que el "kit" de la cuestión está en los valores 0.0f pero mi ignorancia y mi inglés no dan para más.

¿Sabéis otra manera de realizar una línea curvada o en zigzag? ¿Qué tengo que modifcar en este código para lograrlo?

Un saludo.
msi está desconectado   Responder Citando
Antiguo 10-mar-2006, 12:47   #2 (permalink)
Willie tiene algunos puntos positivos de karma
 
Fecha de Ingreso: junio-2005
Mensajes: 287
Aclaracion: nunca he hecho graficos en Java.
que es lo que pasa cuando corres el ejemplo??
lo que mi intuicion me diria es que lo de p.curveTo(...) es donde van las coordenadas.
quizas: punto de partida, punto punto maximo o minimo de la curva, punto final.
De donde sacaste el ejemplo?
Willie está desconectado   Responder Citando
Antiguo 10-mar-2006, 15:06   #3 (permalink)
msi
msi ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2005
Mensajes: 66
Lo he sacado de aquí:
http://java.sun.com/products/java-me...rveQuadTo.html

Viendo el dibujo, es lo que andaba buscando pero ya digo que me da igual que sea curvada que en zigzag. Hay ejemplos de otras clases en http://java.sun.com/products/java-me...ite/index.html

Mi error radica en mi inexperiencia de gráficos con java y que todo lo que veo está en inglés.

Por aportar algo, aquí va mi código para pintar una línea recta entre 2 puntos:

private void DibujarLinea(int x1,int y1,int x2,int y2){
grafico2d = (Graphics2D) grafico;
Stroke s = new BasicStroke(3.0f, // Width
BasicStroke.CAP_SQUARE, // End cap
BasicStroke. JOIN_MITER, // Join style
10.0f); // MITER limit (10 por defecto)

grafico2d.setStroke(s);
Line2D.Float line = new Line2D.Float((float) x1,(float) y1,(float) x2,(float) y2);
grafico2d.draw(line);
repaint();

}


Estoy intentando solucionarlo usando Graphics2D pero me daría igual usar Graphics.
msi está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 14:42.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93