Entwickler-Ecke
Off Topic - ascii-art
Boldar - Do 29.01.09 20:10
Titel: ascii-art
Hi Leute,
ich brauche einen Kreis bzw eine ellipse als ascii-art, der die folgenden anforderungen erfüllt:
___________________________________________________________
|-->es werden nur das zeichen + sowie leerzeichen verwendet |
|-->Die anzahl der spalten ist gleich der anzahl der zeilen gleich 64 |
___________________________________________________________
Aufgrund dieser Anforderungen wird es wohl eher eine ellipse werden, zumindest bei den normalen schriftarten wie courier...
Wie generiert man sowas oder hat jemand sowas??
mfg Boldar
Moderiert von
Gausi: Ein paar _ entfernt
Jakob_Ullmann - Do 29.01.09 20:14
Du hast in der SB Brainfuck erwähnt. Willst du jetzt eine Lösung in Brainfuck oder Delphi? :P
Gausi - Do 29.01.09 20:16
Mal auf ein Canvas einen Kreis mit Durchmesser 64. Dann gehst du die Pixel durch: Bei schwarz kommt ein plus, bei weiß ein Leerzeichen ins Memo-Feld.
Boldar - Do 29.01.09 20:18
Gausi hat folgendes geschrieben : |
Mal auf ein Canvas einen Kreis mit Durchmesser 64. Dann gehst du die Pixel durch: Bei schwarz kommt ein plus, bei weiß ein Leerzeichen ins Memo-Feld. |
mh also an so eine einfache Lösung hbe ich noch garnicht gedacht... ok, danke
das einfachste übersieht man meistens...
Kha - Do 29.01.09 21:15
dx²+dy²<=r² finde ich jetzt nicht soo viel komplizierter. Vor allem funktioniert es im Gegensatz zu Canvas ;) : Bei 64x64 (also 0..63x0..63) ist der Mittelpunkt M(31,5|31,5). Das wird mit GDI schwierig :) . Aber je größer der Radius, dest weniger fällt dieser Fehler natürlich ins Gewicht.
Jakob_Ullmann hat folgendes geschrieben : |
Du hast in der SB Brainfuck erwähnt. Willst du jetzt eine Lösung in Brainfuck oder Delphi? :P |
Ich denke mal, er fügt das Ergebnis als BF-Code ein, fügt am Ende noch einen Punkt hinzu und teilt die Ausgabe dann durch r².
PS: Erinnert mich an
http://www.dangermouse.net/esoteric/piet/samples.html -> "Pi" :D .
jaenicke - Do 29.01.09 21:19
Eine in BF umsetzbare Möglichkeit (ohne Winkelfunktionen :D) wäre diese, statt Abs könnte man einfach den Code für die vier Viertelchen einzeln schreiben, man kann aber natürlich auch das als Schleife schreiben: :mrgreen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure TFormX.ButtonXClick(Sender: TObject); var CurrentLine: string; i, j, x, y, Radius, Radius2, Diameter: Integer; begin Diameter := StrToInt(EditDiameter.Text); Radius := Diameter div 2; Radius2 := Radius*Radius; for i := 0 to Diameter do begin CurrentLine := ''; y := Abs(Radius - i); y := y*y; for j := 0 to Diameter do begin x := Abs(Radius - j); x := x*x; if Abs(x + y - Radius2) < 40 then CurrentLine := CurrentLine + '+' else CurrentLine := CurrentLine + ' '; end; MemoX.Lines.Add(CurrentLine); end; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!