Voor informatica moeten we in java wat applets maken met JavaLogo. Nu gaat alles heel soepeltjes op 1 ding na.
Ik moet een veelhoek maken waarbij de gebruiker het aantal hoeken instelt en de lengte van de lijnstukken. Dit lijkt goed te gaan totdat de gebruiker een waarde invoert waarbij de uitkomst van de hoek die gedraaid moet worden niet een geheel getal is. Dan valt er ineens een gat in de veelhoek.
Het lijkt alsof de waarde achter de komma word afgekapt, alsof ik een double in een integer probeer te proppen. Alleen ik geef de te draaien hoek direct door en stop deze niet eens in een variable. Het is mij dus enigsinds een raadsel waarom niet de juiste hoek gedraaid wordt.
Ik heb al geprobeerd de uitkomst van '360 / aantal' eerst in een double te stoppen en die weer te gebruiken in de methode, maar dit haalde niets uit. Het met de hand invoeren van de hoek werkt wel. Dus bij een aantal van 38 een hoek van 9.47368421 opgeven geeft een perfecte 38 hoek.
Waarom kapt java mijn hoek af als ik deze niet met de hand invoer?
Ik moet een veelhoek maken waarbij de gebruiker het aantal hoeken instelt en de lengte van de lijnstukken. Dit lijkt goed te gaan totdat de gebruiker een waarde invoert waarbij de uitkomst van de hoek die gedraaid moet worden niet een geheel getal is. Dan valt er ineens een gat in de veelhoek.
Het lijkt alsof de waarde achter de komma word afgekapt, alsof ik een double in een integer probeer te proppen. Alleen ik geef de te draaien hoek direct door en stop deze niet eens in een variable. Het is mij dus enigsinds een raadsel waarom niet de juiste hoek gedraaid wordt.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
| [...] public void tekenprogramma() { int aantal = invAantal.geefWaarde(); int zijdelengte = invZijde.geefWaarde(); for(int i = 0; i < aantal; i++) //Teken de veelhoek { vooruit(zijdelengte); rechts(360 / aantal); } } [...] |
Ik heb al geprobeerd de uitkomst van '360 / aantal' eerst in een double te stoppen en die weer te gebruiken in de methode, maar dit haalde niets uit. Het met de hand invoeren van de hoek werkt wel. Dus bij een aantal van 38 een hoek van 9.47368421 opgeven geeft een perfecte 38 hoek.
Waarom kapt java mijn hoek af als ik deze niet met de hand invoer?