Re: förlåt mig.

Subject: Re: förlåt mig.
From: Carl-Johan Sveningsson (woc@wlug.westbo.se)
Date: Sat, 8 Jan 2000 15:26:14 +0100 (CET)


> Det blev nog lite fel innan.
> Vad jag menade med min matte fråga var nog följande.
>
> Jag gjorde mitt problem extremt mycket svårare än vad det är.
>
> Kan ni ge mig en formel för att rita en cirkel, utifrån en simpel plot(x,y) funktion som finns i de flesta c,pascal bibliotek.
> Det är förvissa ingen ritning av en cirkel jag ska göra men det är samma problem.
>
> Det ska vara till C kod, så ifall du som orkar svara kan C så får du gärna skriva det som en C loop.
> Annars räcker en kort förklaring om hur man gör.

Tjo.

Jag sätter väl mig och svarar då. :-)

Antingen kan du ju göra en ganska simpel funktion där i stegas med små
steg från 0 till 2pi.
Då plottas cirkelns punkter med

plot(offsetx + r * cos i, offsety + r * sin i)

(där r är radien på cirkeln du vill ha)

Tänker man efter ytterligare lite...
Rita en radie i din cirkel. Två tänkta linjer med längderna x och y bildar
med radien en _rätvinklig_ triangel.
Kopplar du?
Alltså, längderna x och y är ju också koordinaterna i förhållande till
mitten på cirkeln.
Pythagoras sats säger:

r^2 = x^2 + y^2

Detta kan omskrivas till:

y = -+sqrt(r^2 - x^2)

Alltså kan vi med denna formel stega längs x och få vårt y-värde.
Gör vi det med bara y = sqrt(...) får vi övre halvcirkeln, y = -sqrt(...)
ger undre halvcirkeln.

Jopp, det var ungefär allt...

Fördelen med den övre lösningen är att den ger jämnt fördelade punkter,
nackdelen skulle vara att den använder trigonometri, vilket kanske inte
alltid är önskvärt.

Alles.

/Calle

 "fast det e klart.. lira rysk roulette
  med en haubitz vore rätt tufft..."
                -- hört från Steamshark

----------o--o-oOo-o--o----------

      Carl-Johan Sveningsson
      HHGTTG researcher 96339
        woc@wlug.westbo.se
         +46 370 99112
          ICQ# 2357535
        http://come.to/woc/
      http://wlug.westbo.se/




 
 [Tillbaka till listorna]