Code: Select all
//Lasketaan painopiste
tmpArea# = polygonArea(pG\ID%)
tmpCntrX# = polygonCentroidX(pG\ID%, area#)
tmpCntrY# = polygonCentroidY(pG\ID%, area#)
pG\cntrID% = initVector(tmpCntrX#, tmpCntrY#)
Code: Select all
//Lasketaan painopiste
tmpArea# = polygonArea(pG\ID%)
tmpCntrX# = polygonCentroidX(pG\ID%, area#)
tmpCntrY# = polygonCentroidY(pG\ID%, area#)
pG\cntrID% = initVector(tmpCntrX#, tmpCntrY#)
Nämä ovat juuri näitäTheFish wrote:Katselin tuota koodia vähän ja yksi kohta jäi vähän mietityttämään (todennäköisesti itse vain evotan mutta kysympä kuitenkin...). Ko. koodinpätkä:*nips naps* Noissa pylygonCentroid:eissa käytettyä [area#] muuttujaa ei ole käsittääkseni alustettu missään, ja koska yläpuolella määritellään muuttuja [tmpArea#], jota ei käytetä missään, niin onkohan kyse typosta vai jostain ovelasta tempusta?
Kaikki tiedostot päivitetty. Lataus samoista linkeistä:
http://koti.mbnet.fi/spuntte/CB/CoolPhy ... ttori_1.CB
http://koti.mbnet.fi/spuntte/CB/CoolPhy ... Vektori.CB
http://koti.mbnet.fi/spuntte/CB/CoolPhy ... mo%232.exe
Code: Select all
//Pyörittää vektoria annetun kulman verran
Function rotateVector(v%, ang#)
vect.VECTOR = ConvertToType(v%)
vect\vX# = vX# * Cos(ang#) - vY# * Sin(ang#)
vect\vY# = vX# * Sin(ang#) + vY# * Cos(ang#)
EndFunction
Code: Select all
//Pyörittää vektoria annetun kulman verran
Function rotateVector(v%, ang#)
vect.VECTOR = ConvertToType(v%)
vect\vX# = vect\vX# * Cos(ang#) - vect\vY# * Sin(ang#)
vect\vY# = vect\vX# * Sin(ang#) + vect\vY# * Cos(ang#)
EndFunction
No katos pirhana. Sitä funktiota ei onneksi vielä käytetä missään. Itse asiassa kahdessa seuraavassa funktiossa (vectorRotatedX ja -Y) oli sama ongelma, mutta ne korjasin itse. Copypastesta aihetunut tuo virhe :/ Nyt on sekin päivitetty nettiin. Lataus ylempänä olevasta viestistäni.Valtzu wrote:Tuolla lib_Vektorissa funktiossa RotateVector käytetään vX# ja vY# muuttujia, vaikka kyseessä pitäisi varmaan olla tyyppikokoelman jäseneen viittaavat muuttujat vect\vX# ja vect\vY#.
?SPuntte wrote: Hitto, kun ForceVariableDeclarationin saisi päälle ilman, että kääntäjä heittää erroria määrittelemättömistä tyypi-handleista. Jos ne yrittää määritellä ennen käyttöä, kääntäjä antaa kielioppivirheilmoituksen "ASD already defined as other type on line X". Kokeilkaapa vaikka. Osaako joku ratkaista tai kiertää tämän ongelman?
Code: Select all
Type TestiTyyppi
Field foo
Field bar
EndType
Dim joku.TestiTyyppi
joku=New(TestiTyyppi)
Jahas, vastaus on yksinkertainen: evo. Olen siis määritellyt ne väärin. Tähän tapaan:Galgoneer wrote:?SPuntte wrote:EPIC MULTIFAILItse en ainakaan ole huomannut mitään ongelmia, kun olen tässä ForceVariableDeclerationin kanssa koodaillut.Code: Select all
Type TestiTyyppi Field foo Field bar EndType Dim joku.TestiTyyppi joku=New(TestiTyyppi)
Code: Select all
Type TestiTyyppi
Field foo
Field bar
EndType
Dim joku //ei mitään tässä perässä
joku=New(TestiTyyppi)
Koodit päivitetty. Nyt ohjelma kääntyy ForceVariableDeclaration päällä. Lataus samoista linkeistä:
http://koti.mbnet.fi/spuntte/CB/CoolPhy ... ttori_1.CB
http://koti.mbnet.fi/spuntte/CB/CoolPhy ... Vektori.CB
http://koti.mbnet.fi/spuntte/CB/CoolPhy ... mo%232.exe