Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: 3d-ympyrädiagrammi

Antti Laaksonen [15.02.2002 17:29:08]

#

Muuten sama kuin Ympyrädiagrammi, mutta ympyrä piirretään 3d:nä. Värityksessä tuli omat ongelmansa, jonka vuoksi värit ilmaistaan viireillä.

SCREEN 12

TYPE arvo
  nimi AS STRING * 20
  maara AS INTEGER
END TYPE

pii = 4 * ATN(1)
kx = 100
ky = 200
sadex = 100
sadey = 50
korkeus = 20
maara = 5
aloitus = pii

REDIM kohdat(maara) AS arvo

yht = 0
FOR i = 1 TO maara
  READ kohdat(i).nimi, kohdat(i).maara
  yht = yht + kohdat(i).maara
NEXT

PSET (kx, ky)

kohta = aloitus

CIRCLE (kx, ky), sadex, , , , sadey / sadex
CIRCLE (kx, ky + korkeus), sadex, , , , sadey / sadex
LINE (kx - sadex, ky)-(kx - sadex, ky + korkeus)
LINE (kx + sadex, ky)-(kx + sadex, ky + korkeus)

FOR i = 1 TO maara
  vkohta = kohta
  kohta = kohta + kohdat(i).maara / yht * 2 * pii
  LINE (kx, ky)-(kx + SIN(kohta) * sadex, ky + COS(kohta) * sadey)
  LINE (kx + SIN(kohta) * sadex, ky + COS(kohta) * sadey)-(kx + SIN(kohta) * sadex, ky + COS(kohta) * sadey + korkeus)
  LINE (kx + SIN(kohta) * sadex, ky + COS(kohta) * sadey)-(kx + SIN(kohta) * sadex, ky + COS(kohta) * sadey + korkeus)
  LINE (kx + SIN(kohta + (vkohta - kohta) / 2) * sadex / 2, ky + COS(kohta + (vkohta - kohta) / 2) * sadey / 2)-STEP(0, -30)
  LINE STEP(1, 0)-STEP(15, 5), i: LINE STEP(0, 0)-STEP(-15, 5), i: LINE STEP(0, 0)-STEP(0, -10), i
  PAINT STEP(2, 2), i, i
  LOCATE i, 40
  COLOR i: PRINT "Û ";
  COLOR 15
  PRINT kohdat(i).nimi;
  PRINT kohdat(i).maara; "("; LTRIM$(RTRIM$(STR$(INT(kohdat(i).maara / yht * 100 * 100) / 100))); "%)"
NEXT

DATA Eka, 1050, Toka, 788, Kolmas, 250, Neljäs, 240, Viides, 64

Thief [26.02.2003 02:18:36]

#

Laadukas.

InvalidCo [24.04.2003 14:39:19]

#

Sou cool. Itse ehkä jaksan tuon värityksen tehdä viirien kohdalle heti kun muut projektit on valmiina.

-PC-Master-

T.M. [27.06.2003 22:28:03]

#

joo... tosi 3d:tä :D

efteri [10.10.2004 17:27:24]

#

Wähän on siisti

Vastaus

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

Tietoa sivustosta