2012-08-12 18 views
16

Tengo problemas para dibujar un triángulo con el método draw(Graphics g) en Java. puedo dibujar un rectángulo, así:Triangle Draw Method

public void draw(Graphics g) { 
    g.setColor(colorFill); 
    g.fillRect(p.x, p.y, width, height); 
    g.setColor(colorBorder); 
    g.drawRect(p.x, p.y, width, height); 
    drawHandles(g); 

Donde p representa "la esquina superior izquierda de las formas". ¿Cómo dibujaría el triángulo de la misma manera?

¿Podría alguien darme un ejemplo para un triángulo estándar?

Respuesta

27

no hay un método dibujarTriangulo ni en gráficos ni Graphics2D. Tienes que hacerlo por ti mismo. Se pueden dibujar tres líneas usando el método de drawLine o utilizar uno de estos métodos:

Estos métodos funcionan con polígonos. Puede cambiar el prefijo draw a fill cuando desee completar el polígono definido por el conjunto de puntos. Inserté los enlaces de documentación. Eche un vistazo para aprender cómo usarlos.

También está la clase GeneralPath. Se puede usar con Graphics2D, que es capaz de dibujar Shapes. Echar un vistazo:

+0

drawPolygon era justo lo que estaba buscando! gracias –

+0

@JonSnow: ¡De nada! – davidbuzatto

0

no hay ningún comando directamente para dibujar Triangle. Para Dibujo de triángulo tenemos que usar el concepto de líneas aquí.

i.e, g.drawLines (Coordenadas de puntos)

1

Use un algoritmo de línea para conectar el punto A con el punto C, y en un bucle externo, deje que el punto A pase hacia el punto B con el mismo algoritmo de línea y con las coordenadas errantes, repita dibujando esa línea . Probablemente también pueda incluir un z delta con el cual también se incrementa iterativamente. Para el algoritmo de línea, simplemente calcule dos o tres pendientes para el cambio delta de cada coordenada y establezca una pendiente en 1 después de cambiar las otras dos proporcionalmente para que estén por debajo de 1. Esto es muy importante para dibujar áreas geométricas cerradas entre partículas de malla conectadas. Eche un vistazo al ejemplo de Qt Elastic Nodes y ahora imagine dibujar triángulos entre los nodos después de estirarlo sobre un esqueleto. As long as it will remain online

0

No hay un método directo para dibujar un triángulo. Puede usar el método drawPolygon() para esto. Se necesitan tres parámetros de la siguiente forma: drawPolygon(int x[],int y[], int number_of_points); Para dibujar un triángulo: (especifique las coordenadas x en las coordenadas xey en la matriz yy el número de puntos que serán iguales a los elementos de ambas matrices.Me gusta en el triángulo tendrá 3 x coordenadas y 3 y las coordenadas que significa que tiene 3 puntos en total) Supongamos que desea dibujar el triángulo usando los siguientes puntos:. (100,50),(70,100),(130,100) Haga lo siguiente en el interior public void paint(Graphics g):

int x[]={100,70,130}; 
int y[]={50,100,100}; 
g.drawPolygon(x,y,3); 

De manera similar, puede dibujar cualquier forma usando tantos puntos como desee.