Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Pascal puoliympyrä?

progr2 [24.11.2004 16:36:59]

#

Elikkäs aloittelen ohjelmointia Pascalilla ja tiedän jo jonkin verran.

Mutta mitenköhän tehdään puoliympyrä Pascalilla?

Metabolix [24.11.2004 16:51:47]

#

No kerropa, minne olet sitä tekemässä, Windowsissa, Linuxissa vai komentorivillä ja mitä kirjastoja käytät?

Puoliympyrään ei taida lölytyä mistään valmista funktiota, mutta voit laskea pikselien kohdat Pythagoraan lauseella:

uses
  Math;

procedure Ympyra(keskX, keskY, Sade: Integer);
var
  X, Y: Integer;
begin
  for X := 0 to Sade do
  begin
    Y := trunc(Sqrt(Sade * Sade - X * X) + 0.5);
    (* Piirretään pikselit *)
    PiirraPikseli(keskX + X, keskY + Y);
    PiirraPikseli(keskX + X, keskY - Y);
    PiirraPikseli(keskX - X, keskY + Y);
    PiirraPikseli(keskX - X, keskY - Y);
    PiirraPikseli(keskX + Y, keskY + X);
    PiirraPikseli(keskX + Y, keskY - X);
    PiirraPikseli(keskX - Y, keskY + X);
    PiirraPikseli(keskX - Y, keskY - X);
  end;
end;

Tuolla saat piirrettyä ympyrän, kun korvaat PiirraPikseli-funktion jollakin, joka piirtää pikselin. Kun mietit hetken, keksit varmasti itsekin, mitkä noista pikseleistä pitää jättää pois, jotta saa puoliympyrän jotenkin päin.

Jos haluat puoliympyräsi muuten kuin 45º välein, tarvitset trigonometriaa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta