Aufgabe

Status
Nicht offen für weitere Antworten.

horn27

Mitglied
Hallo,

ich habe heute folgende Aufgabe bekommen:

Schreiben Sie ein Applet, das einen Buchstaben zeichnet (nicht zu einfach), so dass Sie Größe und Position flexibel halten können. Verwenden Sie Variablen.

Den Buchstaben konnte ich noch teilweise konstruieren, doch wie mache ich das mit der Größe und Position? Das habe ich nicht verstanden!

Hoffe mir kann jemand helfen!

LG
 
G

Gast

Gast
Was passiert, wenn ein Rechteck größer wird?
Ähnliches passiert, wenn z. B. ein "H" größer wird.

Wie verschiebt man ein Rechteck?
...

Viel Erfolg!
 
G

Gast

Gast
Such dir einen einfachen Buchstaben wie das E oder das H

Wenn das E doppelt so groß werden soll, dann multiplizierst du die werte die für die horizontale linie zuständig sind mit 2 und die für die vertikale linie auch mit 2
 

horn27

Mitglied
public void paint(Graphics g) {
g.setColor(Color.blue);
g.drawLine(20, 20, 20, 100 );
g.drawLine(20, 20, 30, 20 );
g.drawLine(30, 20, 30, 100);
g.drawLine(20, 100, 30, 100);
g.setColor(Color.blue);
g.fillOval(20, 20, 40, 40);

ich hab jetzt zb ein kleines p, wie gehts dann jetzt weiter? Wie "male" ich das p komplett aus? lg
 

0x7F800000

Top Contributor
1) das ist ein doppelpost
2) diese vorschläge mit "H" und "E" sind doch wohl ein übler scherz, hoff ich mal^^
 

0x7F800000

Top Contributor
Wie gesagt:
Richtige Schriftgröße setzen und den Buchstaben hinzuschreiben ist aus meiner Sicht die einzige sinnvolle Möglichkeit.
Wie (und wieso?) man das jetzt so verstümmeln soll, dass es auch deinem lehrer passt weiß hier keiner.
 

Saxony

Top Contributor
Hiho,

versuchs mal damit um ein H zu zeichnen:

Code:
public void paint(Graphics g) {

		int s;
		Dimension d = getSize();
		s = Math.min(d.width, d.height);
		g.setColor(Color.blue);
		
		g.drawLine(s / 6, s / 7, s / 6, (s / 7) * 6 );
		g.drawLine(s / 6, (s / 7) * 6, (s / 6) * 2, (s / 7) * 6);
		g.drawLine(s / 6, s / 7, (s / 6) * 2, s / 7);
		g.drawLine((s / 6) * 2, s / 7, (s / 6) * 2, (s / 7) * 3);
		g.drawLine((s / 6) * 2, (s / 7) * 6, (s / 6) * 2, (s / 7) * 4);
		g.drawLine((s / 6) * 2, (s / 7) * 4, (s / 6) * 4, (s / 7) * 4);
		g.drawLine((s / 6) * 2, (s / 7) * 3, (s / 6) * 4, (s / 7) * 3);
		g.drawLine((s / 6) * 4, (s / 7) * 3, (s / 6) * 4, (s / 7));
		g.drawLine((s / 6) * 4, (s / 7) * 4, (s / 6) * 4, (s / 7) * 6);
		g.drawLine((s / 6) * 4, s / 7, (s / 6) * 5, s / 7);
		g.drawLine((s / 6) * 4, (s / 7) * 6, (s / 6) * 5, (s / 7) * 6);
		g.drawLine((s / 6) * 5, s / 7, (s / 6) * 5, (s / 7) * 6 );
	}

bye Saxony
 
S

SlaterB

Gast
was ist denn das für ein schlimmer Vorschlag,
(s/6) usw. gehört doch platzsparend in eine Variable,

bei kleinem s gibts übrigens ganz schön Rundungsfehler, besser erst mulitplizieren und dann teilen:
(75/7)*6 = 60
(75*6)/7 = 64



int s16 = s/6;
int s17 = s/7;
int s67 = (s*6)/7;

g.drawLine(s16, s17, s16, s67);
...


noch besser wirds sicherlich mit benannten Variablen a la

int obenLinksX;
int obenLinksY;
int laengeWaagerechterKante;
usw.

für sehr häufige Werte evtl. lohnend
 

Saxony

Top Contributor
Hiho,

yup is mir schon klar! Aber guggst du hier scheint das so gewollt/verlangt zu sein!

Aber zwei drei Gedanken sollte sich der Poster schon noch selber machen!

bye Saxony
 

Saxony

Top Contributor
So aber da wir anscheinend jedem Zucker in den Arsch blasen

Code:
public void paint(Graphics g) {

	int s;
	Dimension d = getSize();
	s = Math.min(d.width, d.height);
	g.setColor(Color.blue);
	
	int s16 = s / 6;
	int s26 = (s * 2) / 6;
	int s46 = (s * 4) / 6;
	int s56 = (s * 5) / 6;
	
	int s17 = s / 7;
	int s37 = (s * 3) / 7;
	int s47 = (s * 4) / 7;
	int s67 = (s * 6) / 7;		
	
	g.drawLine(s16, s17, s16, s67);
	g.drawLine(s16, s67, s26, s67);
	g.drawLine(s16, s17, s26, s17);
	g.drawLine(s26, s17, s26, s37);		
	g.drawLine(s26, s67, s26, s47);
	
	g.drawLine(s26, s47, s46, s47);
	g.drawLine(s26, s37, s46, s37);
	
	g.drawLine(s46, s37, s46, s17);
	g.drawLine(s46, s47, s46, s67);
	g.drawLine(s46, s17, s56, s17);
	g.drawLine(s46, s67, s56, s67);
	g.drawLine(s56, s17, s56, s67);
}

Tschüß
 
S

SlaterB

Gast
da sieht man viel eher, dass die 6 und 7 was mit x und y zu tun haben,

dann bietet sich fast schon

Code:
   int s1 = s; 
   int s2 = s * 2; 
   int s3 = s * 2; 
   int s4 = s * 4; 
   int s5 = s * 5; 
   int s6 = s * 6; 
    
   drawLine67(g, s1, s1, s1, s6); 
   drawLine67(g, s1, s6, s2, s6); 
   drawLine67(g, s1, s1, s2, s1); 
   drawLine67(g, s2, s1, s2, s3);       
   ...
an mit entsprechender Hilfsmethode, die durch 6 oder 7 teilt ;)
 

Saxony

Top Contributor
Ja und wenn wir daraus ein Framework machen, braucht der Threadersteller nur noch:

Code:
import java.applet.Applet;

import org.javaforum.hausaufgaben.AlphabetPainter

public class ScaleApplet extends Applet {

	AlphabetPainter painter = new AlphabetPainter(this);

	public void paint(Graphics g) {		

		painter.print("Schreibe das bitte mal skaliert in die Mitte", AlphabetPainter.Center, AlphabetPainter.Streched);
	}
}

Jeder Buchstabe wird dann selbstverständlich in Linien umgewandelt und skaliert, mittig und an die Containergröße angepasst gezeichent. Gratulation!

bye Saxony
 

horn27

Mitglied
wenn mir jetzt noch jemand erklärt warum ich da jetzt s durch 7 oder mal 6 oder so nehmen muss bin ich zufrieden! LG
 
S

SlaterB

Gast
Saxony hat gesagt.:
Aber zwei drei Gedanken sollte sich der Poster schon noch selber machen!

--------

lasse das Teilen doch testweise weg oder teile immer durch 6 oder immer durch 7,
wenn es keinen wichtigen Unterschied macht, dann ist es eh egal
 

0x7F800000

Top Contributor
hast du dir wenigstens die mühe gegeben, den beispielcode zusammenzufügen und auszuführen?
Falls nein, wäre das imho ein wenig unhöflich. Falls ja, dann erklär doch bitte mal, was dir daran noch unklar ist...
 

horn27

Mitglied
natürlich habe ich das gemacht...und auch verstanden wie die Aufgabe aufgebaut ist, nur frage ich mich was es mit dem mal nehmen un teilen auf sich hat..
 

0x7F800000

Top Contributor
horn27 hat gesagt.:
nur frage ich mich was es mit dem mal nehmen un teilen auf sich hat..
was gibts denn da noch zu fragen, die leute haben diese proportionen des Buchstaben eben als esthetisch empfunden? Wenn's dir irgendwie anders gefällt, darfst du da auch den goldenen schnitt reinbauen, sagt sicherlich auch keiner irgenetwas dagegen.
 

horn27

Mitglied
ähm versteht mich hier keiner oder was ist hier los? Ich bin totaler Anfänger von Java, ich kann gerade mal einen Buchstaben modellieren, das wars, und alles was ich wissen möchte wie das funktioniert mit der Variablen? s? Ich habe verstanden dass eine Variable eingesetzt wird, aber warum muss ich dann s durch 7 teilen, oder durch 6? Wie funktioniert das ganze System?
 
S

SlaterB

Gast
da du dich dem Ausprobieren/ Kommentieren der bisherigen Vorschläge verweigerst..
 

horn27

Mitglied
ich verweigere mich doch nicht, ich will doch nur erklärt haben wie das ganze System funktioniert!? Warum man s durch irgendwas teilen muss, was heißt das denn??????
 

horn27

Mitglied
Saxon hat mir ja ein Beispiel gemacht, jetzt is doch nur meine Frage warum er folgendes schreibt in den Klammern: s / 6, s / 7.... was heißt das?
 

SebiB90

Top Contributor
horn27 hat gesagt.:
Saxon hat mir ja ein Beispiel gemacht, jetzt is doch nur meine Frage warum er folgendes schreibt in den Klammern: s / 6, s / 7.... was heißt das?
führ das programm aus, änder die zahlen, führ es nochmal aus, vergleiche beide ausgaben, finde den unterschied heraus :roll:
 
S

shad0w

Gast
horn27, um das zu verstehen, führe bitte folgende Anweisungen aus:

1. schnapp dir stift und papier

2. zeichne ein quadrat mit ca. 10cm seitenlänge

3. die seitenlänge des quadrats heißt s !

4. unterteile das quadrat in 6*7 kästchen (6 horizontal, 7 vertikal), die linien aber bitte eher schwach zeichnen

5. merke, dass wir jetzt ein koordinatensystem haben, und zwar:

die ecke oben links entspricht dem punkt (0,0)
das ecke oben rechts entspricht dem punkt (s,0)
die ecke unten links entspricht dem punkt (0,s)
die ecke unten rechts entspricht dem punkt (s,s)

die untere rechte ecke des kästchens oben links entspricht dem punkt (s/6, s/7),
("/" ist "geteilt durch"), denn s/6 ist die breite eines jeden kästchens und s/7 die höhe
die obere linke ecke des kästchens unten rechts entspricht dem punkt (s/6 * 5, s/7 * 6)
("*" ist "mal"), denn du gehst vom Nullpunkt 5 kästchen nach rechts und 6 kästchen nach unten

für (s/6, s/7) können wir natürlich auch sagen: (s/6 * 1, s/7 * 1)

für (0,0) können wir auch sagen: (s/6 * 0, s/7 * 0)

und für (s,s) können wir natürlich auch sagen: (s/6 * 6, s/7 * 7)

damit alles schön einheitlich ist und nicht so verwirrend: das, was sich dann verändert, ist immer nur der eine faktor, während s/6 und s/7 ja immer konstant bleibt

6. schreibe also an die ecke oben links des ganzen quadrats die zahl 0

7. schreibe rechts daneben ENTLANG DER OBEREN SEITE an die "gitterpunkte" 1, 2, 3, 4, 5, 6 (bis an die ecke oben rechts)

8. schreibe unter die zahl 0 ENTLANG DER LINKEN SEITE an die "gitterpunkte" 1, 2, 3, 4, 5, 6, 7 (bis an die ecke unten links)

7. jetzt kannst du die linien gemäß der anweisungen einzeichnen, so wie es im beispielcode von saxony steht:

zeichne linie von (s/6 * 1, s/7 * 1) nach (s/6 * 1, s/7 * 6)
zeichne linie von (s/6 * 1, s/7 * 6) nach (s/6 * 2, s/7 * 6)
...

Am Ende müsstest du dann den Buchstaben H erhalten.

Wenn du jetzt von Anfang an mit einem größeren Quadrat angefangen hättest (also z.B. s = 20 cm), dann wäre auch das H größer und umgekehrt.

HTH,
shad0w
 

ARadauer

Top Contributor
ähm versteht mich hier keiner oder was ist hier los? Ich bin totaler Anfänger von Java, ich kann gerade mal einen Buchstaben modellieren, das wars, und alles was ich wissen möchte wie das funktioniert mit der Variablen? s? Ich habe verstanden dass eine Variable eingesetzt wird, aber warum muss ich dann s durch 7 teilen, oder durch 6? Wie funktioniert das ganze System?

shad0w hat recht, das hat nichts mit java zu tun, wenn du eine linie von a nach b zeichnen kannst, ist der java part erledigt....
wie das jetzt wirklich mit dem buchstaben funktioniert, das kannst auch mit papier und bleistift lösen
 

ARadauer

Top Contributor
aja ich hab noch eine lösung füs H

Code:
g.drawString("H", 20, 20);
 

horn27

Mitglied
Danke shadow, du hast mir echt weitergeholfen, ich habe jetzt den kleinen Buchstaben p probiert und es hat funktioniert, vielen Dank !
 

horn27

Mitglied
eine Frage hätte ich noch, warum teilt man das jetzt ausgerechnet in 6 * 7 auf ? Oder spielt das keine Rolle?
 
S

shad0w

Gast
Man unterteilt das so weit, dass es informationsmäßig gerade ausreicht.

Eine Unterteilung in 2*2 würde z.B. nicht reichen. Probier das mal aus, unterteile ein Quadrat in 2*2 Quadrate. Es gibt dann keinen Weg, auf den Schnittpunkten ein H zu zeichnen.

Eine Unterteilung in 50*50 wäre offenbar viel zu detailliert für ein einfaches H.

Man sollte auch noch auf allen Seiten einen Rand lassen, wie du bemerkt hast.

Eigentlich hätte 5*5 gerade ausgereicht, denn H hat informationsmäßig eine Breite von 3 (linker Strich, Mitte, rechter Strich), eine Höhe von 3 (obere Aussparung, mittlerer Strich, untere Aussparung) und dazu kommt dann noch auf allen Seiten ein Rand von 1, also 5*5. Sieht halt nicht so gut aus wie 6*7. :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Buchstabenzähler-Aufgabe mit Arrays Java Basics - Anfänger-Themen 5
Jere58 Aufgabe zu Mustern Java Basics - Anfänger-Themen 1
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Mikejr Java Berg aufgabe Java Basics - Anfänger-Themen 6
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
Neuling47 Ich zerbreche mit den kopf an einer Aufgabe Java Basics - Anfänger-Themen 61
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
T Informatik Studium Aufgabe Java Basics - Anfänger-Themen 4
T Aufgabe Informatik Studium Java Basics - Anfänger-Themen 10
G matrix aufgabe Java Basics - Anfänger-Themen 22
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
9 Aufgabe Bruttorechner Java Basics - Anfänger-Themen 14
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
J boolean aufgabe Java Basics - Anfänger-Themen 9
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
StevenGG Aufgabe im Studium Java Basics - Anfänger-Themen 36
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
S Schulaufgabe - verstehe leider die Aufgabe nicht Java Basics - Anfänger-Themen 4
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
R Eclipse Aufgabe Java Basics - Anfänger-Themen 4
J OOP-Aufgabe Java Basics - Anfänger-Themen 15
Helix19 Informatik Grundkurs (Haus-)Aufgabe Java Basics - Anfänger-Themen 5
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
TimoN11 Java spezielle Suchprobleme - Aufgabe Java Basics - Anfänger-Themen 5
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 2
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 9
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 18
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Rechnungen-Aufgabe Java Basics - Anfänger-Themen 18
C Biene-Aufgabe Java Basics - Anfänger-Themen 2
K Algorithmen und Datenstrukturen Programmier Aufgabe Java Basics - Anfänger-Themen 10
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Aufgabe Flussdiagramm, kann jemand checken? Java Basics - Anfänger-Themen 8
B Methoden Ausgeben Aufgabe Java Basics - Anfänger-Themen 15
M Lösung Aufgabe - Java Programmiren lernen für Dummies Java Basics - Anfänger-Themen 11
J Rekursion Klausur Aufgabe Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
F Aufgabe: Abstand von einem Punkt zu einem anderen Punkt Java Basics - Anfänger-Themen 10
T Aufgabe zum Verschlüsselungsalgorithmus Java Basics - Anfänger-Themen 11
J Erste Schritte Aufgabe Java Basics - Anfänger-Themen 24
T Methoden BinaryTree transformieren Aufgabe Java Basics - Anfänger-Themen 36
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
S Sortieralgorithmus - Aufgabe mit Lösungsidee Java Basics - Anfänger-Themen 20
A Aufgabe: Gleitkommazahlen Java Basics - Anfänger-Themen 3
A Java-Programmierungs Aufgabe Java Basics - Anfänger-Themen 2
U Aufgabe zu Kontrollstrukturen Java Basics - Anfänger-Themen 8
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
J Aufgabe als Feuertaufe Java Basics - Anfänger-Themen 8
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
G Ratlosigkeit zur Aufgabe im Anhang (boolean, equals.) Java Basics - Anfänger-Themen 20
S Hilfe bei Java Aufgabe (Schleifen) Java Basics - Anfänger-Themen 25
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
H aufgabe 4 Java Basics - Anfänger-Themen 297
M Hilfe bei Projektorientierungs-Aufgabe !! Java Basics - Anfänger-Themen 3
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
H java aufgabe Java Basics - Anfänger-Themen 7
E Mathematische Aufgabe: Antwort entspricht nicht der Lösung Java Basics - Anfänger-Themen 5
H was verlangt die aufgabe ? Java Basics - Anfänger-Themen 10
H java aufgabe Java Basics - Anfänger-Themen 68
H java aufgabe Java Basics - Anfänger-Themen 25
H aufgabe java luhn algorithmus Java Basics - Anfänger-Themen 10
R Java Aufgabe (Teilbarkeit) Java Basics - Anfänger-Themen 7
H java aufgabe Java Basics - Anfänger-Themen 44
H java aufgabe Java Basics - Anfänger-Themen 7
H java string aufgabe Java Basics - Anfänger-Themen 10
H array aufgabe Java Basics - Anfänger-Themen 13
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
H aufgabe Java Basics - Anfänger-Themen 9
H lösung aufgabe Java Basics - Anfänger-Themen 12
S Hilfe für Aufgabe Java Basics - Anfänger-Themen 4
H java online aufgabe Java Basics - Anfänger-Themen 4
H Array aufgabe Java Basics - Anfänger-Themen 7
H oop aufgabe probe kalusur Java Basics - Anfänger-Themen 11
H oop aufgabe Java Basics - Anfänger-Themen 19
H JAVA AUFGABE Java Basics - Anfänger-Themen 7
W Thread Aufgabe - Vorgehensweise Java Basics - Anfänger-Themen 8
J Problem bei Aufgabe "Geldstückelung" Java Basics - Anfänger-Themen 5
P Problem bei Java-Aufgabe Java Basics - Anfänger-Themen 12

Ähnliche Java Themen


Oben