myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   C# - Kreis Zeichnen - Consoleapplication (https://mygully.com/showthread.php?t=2122465)

cucuuu 20.09.10 08:21

C# - Kreis Zeichnen - Consoleapplication
 
Guten Tag (Morgen) Gullianer ,
ich möchte einen Kreis bei C# zeichnen aber habe jetzt keine Ahnung wie.
Ich bin neu bei C# aber mein beschissener lehrer besteht darauf gleich mal einfach so C# zu benutzen und uns ne aufgabe zu geben die keiner braucht. = (

Also , ich soll Console appplication benutzen und einen Kreis zeichnen der verpixelt ist.

Sorry bin zu dumm dafür =(:mad:

Danke schonmal im Vorraus ;):T

ThePinsel 20.09.10 11:26

Und du denkst, dass du ohne dir selbst auch nur ein bisschen Gedanken zu machen, dir jemand hier fertigen Code postet? Wenn das einer macht, wird der von mir verwarnt.
Hausaufgaben sollte man schon selber machen. Und wenn man dazu mal ein wenig nachdenken muss.

urga 20.09.10 18:35

da haste deinen kreis. der ist zwar ziemlich klein, aber immerhin ;)
Code:

Console.WriteLine(".");

cucuuu 20.09.10 18:46

ähem , - ja ich möchte nur nebenbei erwähnen , dass ich einen komischen lehrer habe (der einen gleich anbrüllt oO) und dass keiner aus meiner klasse es bisher hinbekommen hat . Wenn dem so wäre hätte ich nicht den umstand gemacht und hier was gepostet =)
und diesen thread habe ich während des unterrichts gepostet .
Wie auch immer - könnte mir eben wenigsten jemand einen Ansatz geben bzw - erklären wie man bei einer Consoleapplication in c# einen Punkt(x,y) mit '*' kennzeichnet ?

habe ja vorher mit processing gearbeitet und von daher ist der umstieg für mich etwas schwer geraten 8E

und ja- ich habe auch gegoogled - komme aber nicht zu einer vernünftigen antwort , da diese nicht zur consoleapplication passt (oder wie auch immer ..)

@ urga - woah jetzt kann ich schon mal paar '*'s erstellen :top: thanks ;D

Wichtiges - ich bin auf einem mathematikgymnasium mit besonderem naturwissentschaftlichen profil - d.h. ich habe auch was im köpfchen ;D

urga 20.09.10 18:58

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] (klick auf c#, und dann auf example...)

cucuuu 20.09.10 20:02

Danke =) , ich versuche mal das beste daraus zu machen =)

kramido 20.09.10 20:04

Zum Zeichnen von Kreisen auf Rastergrafiken (auch ASCII-Art) existieren diverse Algorithmen. Der erste war wohl der Bresenham für Kreise:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Anbei findet sich ein Beispiel für eine Implementierung in C.Der Unterschied bei dir besteht darin, dass du keine Pixel setzen musst, sondern ein Zeichen für einen Kreisaußenpunkt (z.B. eine Raute oder einen Punkt) setzen sollst.

Achte darauf, wieviel Platz du auf der Konsole hast. Radien über 20 sollten ein Problem werden...

Kannst ja mal deinen fertigen Code hier posten.

Grüße,
kramido

xparet0209 24.09.10 21:35

also ich denke allg zur darstellung solltest du keinen punkt verwenden um die peripheri darzustellen
sondern ein dickes schwarzes viereck (code steht meistens hinten in der formelsammlung), da du in c# mit der console nur in den zeilen hin und her springen kannst, jedoch kannst du keine pixel direkt beeinflussen - daher wird wahrscheinlich auch kein bresenham algorithmus notwendig sein :)
guck dir diese kreisfunktion an (wiki):
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

jetzt kannst du halt alle x durchgehen in einer schleife, dabei im intervall von -1 bis 1
und dabei mit deinem gewünschten radius multiplizieren
die koordinaten müssen natürlich noch gerundet werden

dann an der jeweiligen stelle das zeichen ausgeben
im folgendem artikel steht wie du die cursorposition in der konsole verändern kannst
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

hättest einfach nur "c# console set cursor position" google müssen

du bist nicht zufällig an der h2o in berlin?

ro88ro 27.09.10 21:49

Zitat:

Zitat von urga (Beitrag 21287539)
da haste deinen kreis. der ist zwar ziemlich klein, aber immerhin ;)
Code:

Console.WriteLine(".");

das geht ohne system.... beeindruckend
ich mach den mal was grösser:
Code:

Console.WriteLine("ö");
mit 2 punkten oben drauf!

kann mir mal eben jemand ne flasche bier coden, aber offen bitte

ro88ro 27.09.10 22:00

:) mist hasste die property feuerzeug oder 17erschluessel vergessen, naja anfängerfehler

mal mit filemaker s***** probieren
Code:

gehezudatensatz:(hello world::kioskmode )
neuerdatensatz(vorrat::bier +5)
schreibe änderungen()
//TODO:developers: we have to improve the latancy time here...
//kioskmode takes more than 5 minutes!! try better
//FROM:<QA> TIMESTAMP "1.1.1970  00:00:00"
gehezudatensatz (Home::Sofa)
holes*****parameter(1,$$oeffner)
s*****ausführen("oeffnen",vorrat:bier)
fedlwertsetzen(vorrat::bier-1)
s*****ausführen("trinken",vorrat:bier)
s*****ausführen("imbett",user:id)
gotolayout(""buy FM","Only 3.500$") //ad by <QA> dev forgot again ads
program beenden

...mh compile error:runtime error: current Table "user:brain" divided by zero
immerhin hatte ich fast schon einen öffner...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.