Zeichnen mit Wiederholungen

Snymx

Mitglied
Guten Abend alle zusammen!
Ich sitze gerade an meinen Hausaufgaben zum Thema Schleifen, Random & Zeichen und habe nun schon 4 von 6 Aufgaben erledigt. Hänge nun aber an den letzen beiden fest und habe nicht wirklich eine Ahnung wie ich daran gehen sollte, vielleicht kann mir jemand von euch freundlicherweiser helfen! 🙂
1. 10 kleiner werdene aneinandergereihte Kreise zeichnen. (Hier ist mein Problem, dass ich nicht wirklich gut mit den Radien umgehen kann).
2. Benutzereingabe n (über den Bildschrim). Dann ein n-Eck mit Seitenlänge 10 zeichen. Hier muss der Buntstift bewegt und gedreht werden. (Hier ist mein Problem, dass ich die Aufgabe nicht verstehe und keine Ahnung hab wie ich damit arbeiten soll).

Ich bedanke mich im Vorfeld für eure Hilfe!

Liebe Grüße!
 
Kannst du die kleinerwerdenden Kreise einmal mit Papier und Bleistift auf Papier aufzeichnen?
Und ein 7-Eck mit Seitenlänge à 10 bitte auch!
Das ist eigentlich etwas fürs Whiteboard, ich kann mir so schlecht etwas darunter vorstellen. 🙁
 
Diese Kreise sollen etwa so angeordnet sein (hab jetzt keine 10 gemacht, ich denke, dass das Prinzip dadurch klar wird) :
y3Lk2


Das Siebeneck (versucht):
gzVHb


Die Seitenlängen sind dann ja jeweils alle 10, auch wenn ich es nicht so gut darstellen konnte ^^
 
Die Bilder werden bei mir nicht angezeigt ...
Bei mir sehen die Kreise so aus, ginge das auch?:
k1.PNG

Über N-Ecke habe ich mir noch nicht so gedanken gemacht.
 
Ja genau, so sollen sie dann gezeichnet aussehen 🙂
Bei mir gehen die Bilder mit einem Rechtsklick auf das IMG und dann auf Grafik anzeigen
 
Kreise: kleiner werden lassen, x- und y- neu berechnen, Index dekrementieren ...

Idee n-Ecke: 360/n == um so viel Grad gedrehte Linie auf einen Kreis gedacht?

Bearbeitung: Diese Kreise (ohne die Augenhilfslinien) habe ich mit 5 Zeilen gebastelt
 
Die Idee hinter deinen Anweisungen habe ich ein wenig nachverfolgen können, jedoch habe ich erst seit ein paar Monaten Informatik in der Schule und dementsprechend kenne ich noch nicht all zu viele Möglichkeiten, verschiedene Dinge zu machen. "Den Index dekremntieren" habe ich zum Beispiel noch nie gehört, wäre lieb wenn du es mir ein wenig beschreiben könntest 🙂
Danke
 
Also ich habe einen Index z. B. von 8 bis 1.
Dann zeichne ich den Kreis:
g.drawOval(x, y, index * 20, index * 20);
und dann verändert sich alle Variablen:
x + index * 20, y + index * 10 - (index - 1) * 10, index - 1

Wenn ich es jetzt noch anders aufschreibe, sind wir schon beim Source^^

dekrementieren heißt einfach nur, um 1 verringern/verkleinern
 
AWT/Swing hatte ihr aber schon dran, oder? Wenn nicht, anders tun/anders ansetzen/diese Aufgabe anders angehen^^

*gääähn* schon bin ich schlafen*
 
So ---- wegen N-Ecke: Suche google: Kreispunkt berechnen
z. B.
https://www.spieleprogrammierer.de/...-von-einem-punkt-p-auf-einem-kreis-ermitteln/
https://upload.wikimedia.org/wikipedia/commons/8/82/Sinus_en_cosinus.png
Habe mir das so gedacht, das du den Kreis einfach in n Teile teilst, und mit P1(cos(360/n), sin/(360/n)) einen Kreispunkt berechnest. Dann verläuft das N-Eck von Kreispunkt zu Kreispunkt (starts und stops der Linien). Das müsste eigentlich funktionieren. Ich kann das später mal testen.
----
"Benutzereingabe von n" könntest du noch. 😎
---- Bearbeitung ----
Das funktioniert, schaut aber noch sehr komisch:
k2.PNG

Java:
            private void paint2(Graphics g, int x, int y, int faci, int n) {
                double w = Math.toRadians(360.0 / n);
                Point p1 = new Point(x, y);
                for (int i = 1; i < n; i++) {
                    Point p2 = new Point((int) (x + Math.sin(i * w) * faci), (int) (y + Math.cos(i * w) * faci));
                    g.drawLine(p1.x, p1.y, p2.x, p2.y);
                    p1 = p2;
                }
            }

Aufruf mit paint2(g, 200, 200, 200, 7); ---- vielleicht wäre jemand so freundlich, und würd das verbessern! (das ein N-Eck oder Polygon gezeichnet wird ... )
 
Zuletzt bearbeitet von einem Moderator:
Aktualisierung:
Habe es selber hinbekommen, es mussten nur zwo Zeilen geändert werden:
Java:
                Point p1 = new Point((int) (x + Math.sin(0) * faci), (int) (y + Math.cos(0) * faci));
                for (int i = 1; i <= n; i++) {

k3.PNG
Meiner Meinung nach, soll ein 7-Polygon so schauen ---- stimmt das?? (Frage an alle Geometrie affine Mensch)
 

Zurück
Oben