Kehittelen parhaillani 3d-engineä QBascille ja tarvitsen koodin, joka laskee kulman kahden pisteen välillä. Tiedossa on vain molempien pisteiden koordinaatit. Joo... tiedänhän minä koodivinkeissä yhden, mutta hallaa tekevät ne
IF a = 0 OR b = 0 THEN a = a + 0.0001: b = b + 0.0001
Niillähän ei loppujen lopuksi tule täysin oikeaa vastausta ja se vaikuttaa engineni toimintaan. Olen yrittänyt vaikka mitä mutta ei auta. Olisko kenelläkään toisenlaista ratkaisua?
Ihan hyvä sinänsä se koodivinkeistä löytyväkin, mutta kai tähänkin ongelmaan jokin neuvo löytyy...?
Ai niinkun toi desimaali ei pysy tarkkana? Eikös CONST käskyllä saa luvusta vakion että se pysyy koko ohjelman samana eikä heittele... :/
Niin siis toi koodinpätkänhän tarkoitus on se että luvut ovat mahdollisimman pieniä, muttei kuitenkaan nolla. Mutta se on silti epätarkka. Tätä on ehkä vähän vaikea selittää.
Jos tuo a on x-kordinaattien erotus, niin laita ehtolause:
jos a=0 niin kulma on tasan 90 astetta eli pii/2
Ei välttämättä, sehän voi olla myös 270 astetta... ja heps keksinkin tässä justiin!
Jos a=0 ja b>0 silloin 90
jos a=0 ja b<0 silloin 270
ja sitten päinvastoin aat ja beet niin saan 0 ja 180.
Aihe on jo aika vanha, joten et voi enää vastata siihen.