elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Triangulo De Sierpinsky
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Triangulo De Sierpinsky  (Leído 5,339 veces)
zaico

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Triangulo De Sierpinsky
« en: 30 Abril 2012, 00:36 am »

Hola de nuevo ! esta semana estoy intentando hacer un fractal , mediante la recursividad, el caso es que no se porque unicamente me recorre el metodo de la primera llamada y la verdad es que no entiendo el por que, he estado mirando ejemplos, pero debo hacerlo unicamente  con los elementos que veis en el codigo , y estoy seguro que se puede. Solo me falta que funcionen los dos metodos de los triangulos de los lado pero parece ser que algo esta mal, alguien me podria decir el que? gracias!:
Código:
import  javax.swing.*;
import  java.awt.*;
import  java.awt.event.*;
import  java.awt.image.*;

public class Fractal extends JFrame {
  
  Image img;
  
  public static void main(String[] args){
    
    E10_Fractal pizarra = new E10_Fractal();
    int [] coordX = { 250,500,750};
    int [] coordY = { 700,0,700} ;
    pizarra.dibuja(coordX,coordY,3,1);
  }
  
  public Fractal(){
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setTitle("Fractal");
    setResizable(false);
    setSize(1000,1000);
    setVisible(true);
    img = createImage(1000,1000);
  }
  
  public void paint(Graphics g){
    g.drawImage(img,0,25,this);
  }
  
  public void dibuja(int [] coordX, int [] coordY, int lados, int contador){
    
    
    if(contador==1){
      Graphics g = img.getGraphics();
      
      
      g.setColor( new Color(255,0,0));
      g.fillPolygon(coordX,coordY,lados);
      
      g.setColor( new Color(0,0,0));
      g.drawPolygon(coordX,coordY,lados);
    }
    dibuja( altoX(coordX), altoY(coordY), lados ,contador-1);
    
    dibuja( izquierdaX(coordX), izquierdaY(coordY), lados ,contador-1);
    
    dibuja (derechaX(coordX), derechaY(coordY), lados ,contador-1);
    
  }
  
  public static int [] altoX(int [] coord){
    coord[2]= coord[1];
    coord[1]= (coord[0]+coord[1])/2;
    return coord;
  }
  
  public static int [] altoY(int [] coord){
    coord[1]= (coord[0]+coord[1])/2;
    
    return coord;
  }
  
  public static int [] izquierdaX(int [] coord){
    coord[0]= (coord[0]+coord[1])/2;
    coord[2]= (coord[1]+coord[2])/2;
    return coord;
  }
  
  public static int [] izquierdaY(int [] coord){
    coord[0]= (coord[0]+coord[1])/2;
    
    return coord;
  }
  public static int [] derechaX(int [] coord){
    coord[0]= coord[1];
    coord[1]= (coord[1]+coord[2])/2;
    return coord;
  }
  
  public static int [] derechaY(int [] coord){
    coord[1]= (coord[0]+coord[1])/2;
    
    return coord;
  }
  
  
  
  
}


En línea

zaico

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Re: Triangulo De Sierpinsky
« Respuesta #1 en: 1 Mayo 2012, 10:41 am »

Una ayudita para este novato de la programación!?


En línea

Proteus1989

Desconectado Desconectado

Mensajes: 184



Ver Perfil WWW
Re: Triangulo De Sierpinsky
« Respuesta #2 en: 1 Mayo 2012, 19:50 pm »

He mirado por encima el código pero lo que he visto es que no tiene fin.
El método dibuja llama SIEMPRE a tres dibujas más y cada uno de ellos a otros 3, y así hasta el fin de los días.

Necesitas un condicional que diga cuando tiene que parar de llamarse recursivamente.
En línea

_teiki

Desconectado Desconectado

Mensajes: 93



Ver Perfil WWW
Re: Triangulo De Sierpinsky
« Respuesta #3 en: 2 Mayo 2012, 03:31 am »

 Ademas de lo ya antes mencionado solo se dibuja un triangulo debido a la condición que tienes.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
* [Source] Triangulo Pascal « 1 2 »
Programación Visual Basic
BlackZeroX 13 12,827 Último mensaje 6 Enero 2010, 03:02 am
por BlackZeroX
[SRC] Triangulo Pascal [by *PsYkE1*]
Programación Visual Basic
Psyke1 3 3,022 Último mensaje 27 Mayo 2010, 09:14 am
por Psyke1
matriz en c++ triangulo
Programación C/C++
yeimival 2 4,205 Último mensaje 11 Mayo 2012, 06:07 am
por yeimival
Programacion de un fractal: Triangulo Sierpinsky
Programación C/C++
karolina.s 1 3,905 Último mensaje 6 Mayo 2014, 22:53 pm
por eferion
Triangulo [Modificado]
Programación C/C++
Yoldy 1 1,710 Último mensaje 13 Abril 2017, 22:33 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines