Archief - [PROG]JAVA gebruik van recursie

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Ble$$ed^

Legacy Member
Hoi, ik heb een probleempje met een oefening die luidt als volgt:

Teken 3 pentagons die telkens in elkaar komen te staan , de zijde van elke vijfhoek staat steeds in een vaste verhouding die van de vorige, de stadiums zijn het aantal getekende vijfhoeken.

Dit is me dus al gelukt zonder enig probleem, maar nu komt erbij dat ik dit recursief moet oplossen. Ik heb me een beetje verdiept recursie en wat research gedaan , maar ik slaag er niet echt in deze oefening op te lossen.

Dit is wat ik al heb zonder gebruik van recursie (dit is een applet en maakt ook gebruik van JTurtle )

Heeft iemand een idee/'oplossing' hoe ik dit voor mekaar krijg ?

groetjes

Code:
import laan.turtle.*;
import java.awt.*;
import javax.swing.JApplet;

public class Recursie extends JApplet
		{
			private JTurtle schildpad;

			public void init( )
			{
				schildpad= new JTurtle(this);
			}

			public void paint(Graphics g)
			{
				super.paint(g);
				schildpad.init( );
				pentagon(100, 3);
			}

			public void pentagon(double zijde, int aantal)
			{
				int x = 250;
				int y = 250;
				int draai = 360;
				
				
				while(aantal!=0)
				{
				schildpad.setPos(x,y,draai);
				
				schildpad.left(72);
				schildpad.forward(zijde);
	
				schildpad.left(72);
				schildpad.forward(zijde);
	
				schildpad.left(72);
				schildpad.forward(zijde);
		
				schildpad.left(72);
				schildpad.forward(zijde);
		
				schildpad.left(72);
				schildpad.forward(zijde);
		

				
				x = x - 10;
				y = y - 15;
				zijde = zijde - 20;
				aantal--;
				
				}
			}
			
		}

killgore

Legacy Member
Zoek eens op tesselating (khoop dak juiste techniek opschrijf, ben beetje in de war).
Als ek tijd heb zal ik zelf eens zien ook ;).

.Acku.

Legacy Member
Uw paint algoritme is fout (get tekent enkel de laatste iteratie) maar recursie is iets als:

PHP:
public void pentagon(double zijde, int x, int y, int aantal)
{

		int draai = 360;
		schildpad.setPos(x,y,draai);
				
		schildpad.left(72);
		schildpad.forward(zijde);
	
		schildpad.left(72);
		schildpad.forward(zijde);
	
		schildpad.left(72);
		schildpad.forward(zijde);
		
		schildpad.left(72);
		schildpad.forward(zijde);
		
		schildpad.left(72);
		schildpad.forward(zijde);
                    //recursie
                    if (aantal > 0) {
                            pentagon(aantal--, x-10,y-15, zijde-20);
                    }
		}
	}
			
}

sys4096

Legacy Member
Mja, inderdaad, maar ik zou aantal en zijde dan wel van plaats wisselen ;)

jodeman

Legacy Member
als ge nu heel de source geeft met die jturtle dinges bij dan gaat het wel beter te vinden zijn, dan kunnen we het testen
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan