Foros del Web » Programación para mayores de 30 ;) » Java »

Dibujar línea senoidal entre 2 puntos

Estas en el tema de Dibujar línea senoidal entre 2 puntos en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 10/03/2006, 13:20
msi
 
Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 19 años, 2 meses
Puntos: 0
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.
  #2 (permalink)  
Antiguo 10/03/2006, 13:47
 
Fecha de Ingreso: junio-2005
Mensajes: 286
Antigüedad: 18 años, 10 meses
Puntos: 2
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?
  #3 (permalink)  
Antiguo 10/03/2006, 16:06
msi
 
Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 19 años, 2 meses
Puntos: 0
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:22.