Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
07.01.2003, 14:30
Fraghunter



Na, Leute haben wir hier ein paar Matheexperten unter uns?
Ich wollte mal fragen, wer mir hier die kürzeste Funktion schreiben kann, um einen Kreis zu zeichnen (Kreis, keine Elypse).
Da hier vieleicht verschiedene Programmiersprachen benutz werden, sagen wir einfach mal, dass zum Zeichnen nur die Funktionen "punkt (x,y)" und "linie (x1,y1 , x2,y2)" benutzt werden dürfen.

Na, wer bekommt die kürzeste Funktion hin?

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de

zum Seitenanfang zum Seitenende Profil || Suche
001
07.01.2003, 15:34
red toothy



für PCLogo, ist nämlich auch ne Programmiersprache :)
repeat360[fd 1 rt1]
hihi
ne mal im Ernst PCLOGO ist scheiße und wir machen das 1Jahr lang in Informatik! :(

--

If you don't feel that you are alive, life will be pointless.
JB:TWINE


Dieser Beitrag wurde am 07.01.2003 um 17:45 von red toothy bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
07.01.2003, 15:46
Fraghunter



rofl
welch sinnvoller Beitrag :D

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de

zum Seitenanfang zum Seitenende Profil || Suche
003
07.01.2003, 17:37
KillerDoc



Quellcode:
void KreisZeichnen(double rad)
{
    for(int angle=0;angle<360;angle++)
        line(sin(angle * 0.017453292f) * rad,cos(angle * 0.017453292f) * rad),(sin((angle+1) * 0.017453292f) * rad,cos((angle+1) * 0.017453292f) * rad));
}

is zwar sau lahm, aber immerhin kurz :)

--

lazy sunday afternooon
i got no mind to worry
i close my eyes and drift away....

zum Seitenanfang zum Seitenende Profil || Suche
004
07.01.2003, 19:06
Der Effektemacher



In den meisten Programmiersprachen gibt es eine Kreisfunktion, und wenn du eine Ellipsenfunktion hast, dann kannst doch auch einen Kreis zeichnen ? - Und du wirst ja wohl nicht in Fortran programmieren :D (oder gibts da sogar auch eine ?) - Also darf ich fragen, wozu du das brauchst ?

--

www.de-maps.de.vu - Never touch a running Effekt !
TrainHunters-Modification

zum Seitenanfang zum Seitenende Profil || Suche
005
07.01.2003, 19:16
Fraghunter



Zum Spass an der Freude :D
Einfach nur um zu sehen, wer das kürzeste hinbekommt/was das kürzeste ist.

achso, und Killerdoc - wie groß wird diesr Kreis?
eine Funktion mit Angabe der größe, und des Ursprungs wäre auch noch nett ;-)

*add*
Ich hab das mal mit php versucht. Für alle Cler, die kein php können, eine kurze Erklärung: Variablen in php fangen mit $ an, each liest das aktuelle Element des Arrays, und rückt dann den Zeiger eins vor und Current giebt den Wert des aktuellen Elements im Array zurück.

Sollte ziemlich schnell sein, und erzweugt auch ein sehr schönes Bild.
hab das mal geuppt (das Zeug in der Mitte ist extra):
http://www.visiondesigns.de/fragy/php-tests/circ.php

achso - wer kommt drauf, auf welcher Regel meine Funktion basiert?
Quellcode:
function Kreis ($r,$cx,$cy){
   for ($i=0;$i <= $r;$i++)
      $circ[$i] = (sqrt ($i * ($d-$i)));
   reset($circ);
   while (list ($x, $y) = each ($circ)){
      linie (($cx-$r)+$x, $cy-$y,  ($cx-$r)+$x, $cy-current($circ));
      linie (($cx+$r)-$x, $cy-$y,  ($cx+$r)-$x, $cy-current($circ));
      linie (($cx-$r)+$x, $cy+$y,  ($cx-$r)+$x, $cy+current($circ));
      linie (($cx+$r)-$x, $cy+$y,  ($cx+$r)-$x, $cy+current($circ));
   }
}

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de


Dieser Beitrag wurde am 07.01.2003 um 19:33 von Fraghunter bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
07.01.2003, 19:42
KillerDoc



Naja, radius = rad, und des Ursprung angeben is ja wohl ka problem mehr .. :)

Quellcode:
void KreisZeichnen(int x, int y, double rad)
{
    for(int angle=0;angle<360;angle++)
        line(sin(angle * 0.017453292f) * rad +x,cos(angle * 0.017453292f) * rad + y,sin((angle+1) * 0.017453292f) * rad+x,cos((angle+1) * 0.017453292f) * rad+y);

}

--

lazy sunday afternooon
i got no mind to worry
i close my eyes and drift away....

zum Seitenanfang zum Seitenende Profil || Suche
007
07.01.2003, 19:42
Tron



sprache: x86 maschinencode (in hexadezimal-darstellung)

b8 6f 0e cd 10 c3

laenge: 6 byte

<edit>
wer es ausfuehren will:
in der dos eingabezeile folgendes eingeben:
debug
e 100 b8 6f 0e cd 10 c3
r cx
6
n kreis.com
w
q

und dann einfach kreis.com starten, natuerlich von der eingabezeile aus. (:

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett


Dieser Beitrag wurde am 07.01.2003 um 19:54 von Tron bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
07.01.2003, 20:01
Onkel Dittmeyer



LOL der is gut Tron =)

--

zum Seitenanfang zum Seitenende Profil || Suche
009
08.01.2003, 13:36
Fraghunter



rofl
nicht schlecht

woher kannst du das?

*edit*
das kann ich toppen:
in ASCII - 1 byte
Quellcode:o

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de


Dieser Beitrag wurde am 08.01.2003 um 13:37 von Fraghunter bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
08.01.2003, 13:40
CN



seit wann is das ne sprache? ;)

--

zum Seitenanfang zum Seitenende Profil || Suche
011
08.01.2003, 16:53
Tron



Zitat:
seit wann is das ne sprache? ;)
das wuesste ich auch gerne (:

Zitat:
woher kannst du das?
einfach ein wenig x86 assembler, im einzelnen:
Quellcode:b8 6f 0e  mov ax, 0x0e6f
; AH: obere 8bit von AX, AL: untere 8bit von AX
; AH=0x0e=14: funktion 14 des BIOS interrupts: schreibe ASCII zeichen aus AL auf den bildshirm
; AL=0x6f='o'
cd 10  int 0x10 ; BIOS interrupt aufrufen
c3  ret ; programm beenden
schnell in assembler geschrieben und dann den maschinencode angeschaut.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett


Dieser Beitrag wurde am 08.01.2003 um 16:54 von Tron bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
012
08.01.2003, 17:56
[RMen]OneStone



Du kannst den Code zu einer 0-Förmigen Ellipse erweitern, die sogar eine Diagonale hat... ;o]

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
013
09.01.2003, 16:08
Fraghunter



k, dann wollen wir die Aufgabe erweitern :P

zeichnet einen anti-alias Kreis :P

--

Nihil timeo, nulla re opprimor, nulli periculo cedo.
www.TheDoenerKing.de

zum Seitenanfang zum Seitenende Profil || Suche