Avatar billede scorp-d Nybegynder
12. maj 2008 - 10:49 Der er 14 kommentarer og
1 løsning

Tegning af forskellige cirkler

Hey...

Jeg sidder og skal lave et program der konstant tegner nogle cirkler så hurtigt som mulig, ud fra noget data den får fra sine klienter(X,Y og radius)...

Det her er et udsnit af hvad jeg har lavet indtil videre:

[code]
{
Graphics g = ptbGraf.CreateGraphics();
Pen pen = new Pen((Color.Red),20);
g.SmoothingMode = SmoothingMode.HighSpeed;

for(int j = 0; j < input.antalletAfCirkler(); j++)
  {
    List<Point> points = new List<Point>();

    List<Double> pointFraCirkler = input.hentCirkel(j);

      Point center = new Point(int.Parse(pointFraCirkler[0]), int.Parse(pointFraCirkler[1]));
               
      double radius = input.henteOrginalRadius(j);

      double stepInterval = (Math.PI * 2) / 360;
      int stepCount = 10000;

      for (int step = 0; step < stepCount; step++)
      {
        double angle = stepInterval * step;

        double x = Math.Cos(angle) * radius;
        double y = Math.Sin(angle) * radius;

        x += center.X;
        y += center.Y;

        points.Add(new Point((int)x, (int)y));

        }

      g.DrawClosedCurve(pen, points.ToArray());
}
[/code]


Er der ikke en lettere måde at tegne en cirkel i C# hvis man har den koordinater og radius ?

Hvis jeg bruger den her metode er det faktisk også muligt at cirkel ikke bliver helt rund nogle steder....
Avatar billede scorp-d Nybegynder
12. maj 2008 - 11:27 #1
Tror at grunden til at cirkel ikke bliver helt rund er fordi points tager int... Men der må da være en anden måde at gøre det på...
Avatar billede nielle Nybegynder
12. maj 2008 - 11:34 #2
Hvorfor bruger du ikk:

g.DrawEllipse()

til at tegne cirklerne med?
Avatar billede aaberg Nybegynder
12. maj 2008 - 11:36 #3
Den nemmeste måde at tegne en cirkel på:

g.DrawEllipse(myPen, myRectangle);

Hvis den ikke bliver helt rund, så sæt:
g.SmoothingMode = SmoothingMode.AntiAlias;
Avatar billede scorp-d Nybegynder
12. maj 2008 - 11:36 #4
Nå kunne bare bruge pointF istedet for point....

Fordi jeg ikke vidste det var der.... tak... du kan bare smide et svar...
Avatar billede nielle Nybegynder
12. maj 2008 - 11:39 #5
Svar :^)

Vist en deler med aaberg80 :^)
Avatar billede egzonrh Nybegynder
12. maj 2008 - 14:07 #6
Bare et spørgsmål:

Hvordan kan i vide alt om de der koder? Hvad er det og med hvad laver du din program med?
Avatar billede nielle Nybegynder
12. maj 2008 - 19:15 #7
egzonrh, hvad mener du?

Det er jo et spørgmål oprettet i C# kategorien, og så er det "bare" at vide en masse om C# og .NET. Det kræver primært øvelse og at man læser f.eks. i bøger eller den medfølgende dokumentation.

Koden kan skrives i enten Visual Studio eller SharpDevelop og kompileres derfra. Den kan også skrives i f.eks. notepad og så kompileres fra kommandolinjen.
Avatar billede egzonrh Nybegynder
12. maj 2008 - 19:41 #8
Okay:P.

Jeg ved bare ikke så meget om de der koder i notepad.

Man laver også hjemmesider med det. Jeg mener det er designet i hjemmesider, som man bruger notepad til.
For ca. 2 uger siden sagde en kamarat, at der er en der tjener hundredevis af kroner hver måned for at lave webside designe.

Han sagde også at det koster 50.000 - 70.000, for at få lavet en design. Kan det passe?

Ville bare vide hvordan man kan huske alle de koder osv.
Avatar billede Syska Mester
12. maj 2008 - 20:15 #9
Det er vel lidt ligesom nogen er gode til mange forskellige sprog, huske film titler og skuespillere etc.

Men jeg er ikke helt med på hvad du mener ...

Koden er den samme ligemeget hvor de skriver den .... Visual Studio og de andre har bare en masse hjælpe væktøjer som kan bruges som gør det nemmere, end hvis det samme skulle gøres med notepad og command line compiling ...

// ouT
Avatar billede egzonrh Nybegynder
12. maj 2008 - 20:33 #10
Okay.

Min hovde-spørgsmål er:
Scorp-d har skrevet de der koder ind. Hvordan ved de andre pludselig hordan man kan rette den?
Men som Nielle siger, kan man bare læse og lærer det i bøger.
Avatar billede Syska Mester
12. maj 2008 - 21:51 #11
Hvad er det for nogen "koder" du snakker om ?

Det scorp-d prøver på med sin kode i sit indlæg er at lave en cirkel med prikker (pixels) og som han siger, så bliver den firkantet ...
Avatar billede Syska Mester
12. maj 2008 - 21:52 #12
nielle skriver så at g.DrawEllipse() også lavet en cirkel ...

Hvor er det vi er på vej hen ? synes vi er ved at være sygt langt ude .. og kan ikke helt følge dig ....
Avatar billede egzonrh Nybegynder
13. maj 2008 - 13:38 #13
For mig ligner det lidt af nogen koder, som scorp-d har skrevet ind. Ikke koder, men af det der HTML og alt det der, som jeg ikke har lært hvordan man bruger.

Da i svarede med en anden [Code] eller det der g.DrawEllipse()
, synes jeg at det må være noget svært.

Det er ikke bare "Hvor ligger København?".

Men jeg har fået svaret:P.
Spørgsmålet var: Hvordan har i lært det og hvordan kan i huske det, eller sådan noget.
Svaret: Man kan "bare" læse det i bøgerne.
Avatar billede nielle Nybegynder
13. maj 2008 - 19:18 #14
Selve det at spørgsmålet bliver stillet i C# kategorien er nu en rimelig god indikator for hvilken slags kode der er tale om.

Når man først er blevet klar over det - og man ellers har sig en del erfaring med C# - kommer resten egentlig helt af sig selv.

Der er f.eks. ikke noget "magisk" i at foreslå at bruge DrawEllipse() - for det er en af den lille snes mulige funktioner man kan bruge til at tegne med. Det er vitterligt ikke ret mange man skal lære at kende. Scorp-d kendte den åbenbart ikke, og prøvede derfor at tegne cirklen vha. en masse linjestykker. Jeg vil vove at påstå at Scorp-d godt selv kunne have fundet den ved at se hvilke andre metoder et Graphics-objekt tilbyder ud over DrawClosedCurve(), men selvfølgelig skal man jo lige få tanken først.

Det eneste problem er så: Hvordan får man den der erfaring der gør at man kan svare på den slags spørgsmål? Tage kurser, læse bøger, og så ellers kode-kode-kode-kode-kode.

C# kan i øvrigt helt klart anbefales, hvis man gerne vil lære at programmere. :^)
Avatar billede egzonrh Nybegynder
13. maj 2008 - 21:34 #15
Nu har jeg forstået det meget godt:P

Tak for forklaringen:P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester