Qbasic ja tähti

onsku

Miten piirrän viisisakaraisen tähden.
eli tarvitsen tietää asteet miten käännytää

Neliön tein näin
CALL rt(90)
CALL fd(100)
CALL rt(90)
CALL fd(100)
CALL rt(90)
CALL fd(100)
CALL rt(90)
CALL fd(100)

Mutta tähteä en saa kirveelläkään

2

217

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Punikki & 7 hyypiötä

      Homma menee about näin:
      Jokainen sakara on tasakylkinen kolmio. Kun jaetaan 360 astetta (ympyrä) sakaroiden lkm:llä (sakarat), saadaan tulos, montako astetta pitää kääntyä, jotta päästään takaisin lähtöpisteeseen haluttujen askeleiden jälkeen, ts. piirretään monikulmio (tässä 5-kulmio).
      Merkitään kolmion eli sakaran korkeutta h:lla ja leveyttä l:llä. Sakara muodostuu siis kolmion kyljistä l. hypotenuusasta (c^2=a^2 b^2). Hypotenuusan ja pohjasivun välinen kulma saadaan modifioimalla kaavasta tan alfa=a/b (alfa-kulman tangentti on kulman vastakkaisen sivun suhde kulman viereiseen sivuun). Varsinainen astekulma saadaan, kun tangentti kerrotaan 180:lla ja jaetaan piillä (kone käyttää radiaaneja eli tehdään muutos rad->deg).


      DECLARE SUB piirra (pituus!) 'piirtää viivan
      DECLARE SUB kaanna (astetta!) 'kääntää suuntaa asteina (suunnan muutos)
      DECLARE SUB suunta (asteet!) 'asettaa suunnan (uusi, absoluuttinen suunta)
      SCREEN 12
      DIM SHARED astenyt 'pidetään kirjaa nykyisestä suunnasta

      pii = ATN(1) * 4 'pii ;)

      sakarat = 5 'montako sakaraa tähteen
      askel = 360 / sakarat 'montako astetta sakaran pohjasivu kääntyy ympyrän kehällä joka kerta

      h = 50 ' sakaran korkeus pisteinä
      l = 20 ' sakaran kannan leveys pisteinä
      hyp = SQR(h ^ 2 (l / 2) ^ 2) 'sakaran sivun pituus (hypotenuusat, ts. tasakylk. kolmion sivut)

      aste = (l / (2 * hyp)) 'kulman tangentti
      aste = TAN(aste) * 180 / pii 'kulma asteina

      FOR i = 1 TO sakarat 'piirretään sakarat
         kaanna (aste) 'eka käännös
         piirra (h) 'eka viiva
         kaanna (180 - aste * 2) 'toinen käännös
         piirra (h) 'toinen viiva
         suunta (i * askel) 'käännetään suunta seuraavalle sakaralle
      NEXT

      SUB kaanna (astetta)
         astenyt = (astenyt astetta) MOD 360
         DRAW "ta" STR$(INT(astenyt))
      END SUB

      SUB piirra (pituus)
         DRAW "u" STR$(pituus)
      END SUB

      SUB suunta (asteet)
         astenyt = asteet MOD 360
         DRAW "ta" STR$(INT(astenyt))
      END SUB

    • Punikki & 7 hyypiötä

      Homma menee about näin:
      Jokainen sakara on tasakylkinen kolmio. Kun jaetaan 360 astetta (ympyrä) sakaroiden lkm:llä (sakarat), saadaan tulos, montako astetta pitää kääntyä, jotta päästään takaisin lähtöpisteeseen haluttujen askeleiden jälkeen, ts. piirretään monikulmio (tässä 5-kulmio).
      Merkitään kolmion eli sakaran korkeutta h:lla ja leveyttä l:llä. Sakara muodostuu siis kolmion kyljistä l. hypotenuusasta (c^2=a^2 b^2). Hypotenuusan ja pohjasivun välinen kulma saadaan modifioimalla kaavasta tan alfa=a/b (alfa-kulman tangentti on kulman vastakkaisen sivun suhde kulman viereiseen sivuun). Varsinainen astekulma saadaan, kun tangentti kerrotaan 180:lla ja jaetaan piillä (kone käyttää radiaaneja eli tehdään muutos rad->deg).


      DECLARE SUB piirra (pituus!) 'piirtää viivan
      DECLARE SUB kaanna (astetta!) 'kääntää suuntaa asteina (suunnan muutos)
      DECLARE SUB suunta (asteet!) 'asettaa suunnan (uusi, absoluuttinen suunta)
      SCREEN 12
      DIM SHARED astenyt 'pidetään kirjaa nykyisestä suunnasta

      pii = ATN(1) * 4 'pii ;)

      sakarat = 5 'montako sakaraa tähteen
      askel = 360 / sakarat 'montako astetta sakaran pohjasivu kääntyy ympyrän kehällä joka kerta

      h = 50 ' sakaran korkeus pisteinä
      l = 20 ' sakaran kannan leveys pisteinä
      hyp = SQR(h ^ 2 (l / 2) ^ 2) 'sakaran sivun pituus (hypotenuusat, ts. tasakylk. kolmion sivut)

      aste = (l / (2 * hyp)) 'kulman tangentti
      aste = TAN(aste) * 180 / pii 'kulma asteina

      FOR i = 1 TO sakarat 'piirretään sakarat
         kaanna (aste) 'eka käännös
         piirra (h) 'eka viiva
         kaanna (180 - aste * 2) 'toinen käännös
         piirra (h) 'toinen viiva
         suunta (i * askel) 'käännetään suunta seuraavalle sakaralle
      NEXT

      SUB kaanna (astetta)
         astenyt = (astenyt astetta) MOD 360
         DRAW "ta" STR$(INT(astenyt))
      END SUB

      SUB piirra (pituus)
         DRAW "u" STR$(pituus)
      END SUB

      SUB suunta (asteet)
         astenyt = asteet MOD 360
         DRAW "ta" STR$(INT(astenyt))
      END SUB

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Takaisin ylös

    Luetuimmat keskustelut

    1. Jens Ihlen (ex Kukka) poika todistaa oikeudessa

      10:49 "Välit ovat olemattomat" Minkälainen isäsi ja sinun välinen suhde on tällä hetkellä? "Minulla ei ole minkäännäkö
      Maailman menoa
      264
      9922
    2. K-kaupassa on mukava käydä, kun ei tarvitse katsella köyhiä

      vasemmistolaisia, joista monet myös varastavat. Mielellään maksaa vähän enemmän tuotteista K-kaupassa, jotka ovat paljon
      Maailman menoa
      194
      5654
    3. Suomeen ei kuulu ihmiset jotka ei halua kätellä toisia ihmisiä, koska tämä on vääräuskoinen

      Nainen joka ei halunnut kätellä Stubbia on selvästi ääripään muslimi, eli sitä sakkia josta niitä ongelmia koituu. Ulos
      Maailman menoa
      164
      5234
    4. PS:n Purra teki -JÄTTI-VELAT

      * * PS:n Purra teki -JÄTTI-VELAT - ! ja jätti MaksuHuolet -Kansan Maksettavaksi -! *
      Maailman menoa
      75
      4881
    5. Vain vasemmistolaiset rakennemuutokset pelastavat Suomen

      Kansaa on ankeutettu viimeiset 30+ vuotta porvarillisella minäminä-talouspolitiikalla, jossa tavalliselta kansalta on ot
      Maailman menoa
      1
      2475
    6. Ootko sä nainen suuttunut

      jostain? Harmi jos tullut väärinkäsityksiä.
      Ikävä
      212
      2449
    7. Nainen, sanotaan että totuus tekee kipeää

      Ehkä mutta se voi olla myös se kaikkein kamalin asia kohdata. Kuplassa on turvallista, kun tietää vähemmän on helpompi.
      Ikävä
      12
      2279
    8. Valtio lopettaa pienituloisten perheiden kylpylälomien tukemisen

      Pienituloiset suomalaiset ovat voineet vuosikymmenten ajan hakea tuettuja lomia terveydellisin, sosiaalisin ja taloudell
      Maailman menoa
      353
      2015
    9. Menen nyt koisimaan

      Ja en ehkä palaa tänne. Asia on nyt loppuunkäsitelty ja totuus tuli ilmi
      Ikävä
      21
      1695
    10. Minkälainen auto

      Kaivatullasi on? Väri/Merkki? :)
      Ikävä
      90
      1617
    Aihe