Results 1 to 7 of 7

Thread: Help! problema programmazione

  1. #1
    Petty Officer 1st Class
    Join Date
    Feb 2009
    Location
    bla
    Posts
    873

    Default Help! problema programmazione

    In realtà più che un problema di programmazione è un problema riguardante il metodo che sto usando che inizio a pensare sia sbagliato di peso.

    Sto scrivendo alcuni metodi in c# che dovremo poi riciclare sulla tesi, uno di questi metodi che pensavo fosse banale invece mi sta dando problemi.
    Nel nostro mondo virtuale gli oggetti sono un insieme di celle quadrate composte da 4 segmenti, un edificio ad esempio di forma quadrata per banalizzare è quindi costituito da un'array multidimensionale di oggetti cella con tante righe quante colonne.

    Ora voglio implementare un metodo che consenta di ruotare tale edificio sul proprio baricentro di un certo numero di gradi per poter testare successivamente l'applicazione di varie forze fisiche, per attuare tale rotazione effettuo il calcolo del baricentro dell'edificio (che sono sicuro sia esatto) poi successivamente esprimo ogni segmento (che abbiamo definito come interpolazione di 2 punti estremi A e B) di cui è composta ogni singola cella in funzione delle coordinate del baricentro (cambio quindi sistema di riferimento), ad esempio facendo Xpunto-Xbaricentro=Xnuova.
    Fatto ciò applico una matrice di rototraslazione cosi costituita

    | cos(alpha) -sen(alpha) | | Xnuova | |Xrisultante |
    | sen(alpha) cos(alpha) | * | Ynuova | = | Yrisultate |

    (* prodotto tra matrici, alpha numero di gradi di cui voglio ruotare)

    al risultato poi risommo le coordinate del baricentro per ritornare in coordinate assolute e opero cosi per ogni coppia di punti A e B (quello sopra è il procedimento per un solo ipotetico punto A) ritraccio ogni segmento con le coordinate dei punti estremi aggiornate e dovrebbero essere ruotati del numero di gradi forniti rispetto al baricentro dell'edificio.

    Ora questo metodo funziona solo per alcuni valori tipo se inserisco 45° ruota l'edificio correttamente, per altri valori invece lo ruota sempre attorno al baricentro ma sembra "tirato" tutto da un'lato.

    Il problema è + che altro matematico, il codice dovrebbe essere giusto al 90% quindi probabilmente non tengo in considerazione qualcosa nel metodo che applico...qualcuno ne capisce qualcosa e può aiutarmi?
    io ho finito le idee

  2. #2
    Hador's Avatar
    Join Date
    Mar 2004
    Location
    Milano
    Posts
    31.321

    Default

    fai debuuugggggghhhh


    fatti i calcoli a mano e tira su dei casi di test veloci per confrontare i valori ottenuti. Almeno capisci subito se l'errore è di programmazione o concettuale.

    se i valori combaciano faili la metodologia, se non combaciano debugga duro fino a che non capisci dove sta il problema.

  3. #3
    Lieutenant
    Join Date
    Jan 2007
    Location
    Roma
    Posts
    4.723

    Default

    il metodo mi sembra corretto ...

    mi pare piu facile che ci sia qualche bug nel codice, sei sicuro che sia tutto corretto li ? ad esempio se da qualche parte hai scambiato seno con coseno o viceversa si potrebbe avere sto effetto (a 45 gradi seno = coseno)

    Last Exile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unknowns
    Nuida FollettoInLutto Bard Tiarna . . . . . . . . . . . . . . . . Deo The Undaunted Rune Priest
    Amiag Blademaster Silver Hand. . . . . . . . . . . . . . Viol The Sacrificed Shadow Warrior
    Viola Vampiir Grove Protector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Nero Incubus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DarkBane
    Naida Cabalist Phoenix Knight. . . . . . . . . . . . . . . . . . . . . . . . . . . . Viole No-Stealth Scout

  4. #4
    Petty Officer 1st Class
    Join Date
    Feb 2009
    Location
    bla
    Posts
    873

    Default

    Quote Originally Posted by Amiag View Post
    il metodo mi sembra corretto ...

    mi pare piu facile che ci sia qualche bug nel codice, sei sicuro che sia tutto corretto li ? ad esempio se da qualche parte hai scambiato seno con coseno o viceversa si potrebbe avere sto effetto (a 45 gradi seno = coseno)
    Richiamo sempre la stessa matrice quindi potrebbe essere come dici, potrebbe essere che alcune rotazioni siano corrette per quello

  5. #5
    Lieutenant Commander Alkabar's Avatar
    Join Date
    Feb 2004
    Location
    Netherlands.
    Posts
    19.975

    Default

    Quote Originally Posted by Shirogane View Post
    In realtà più che un problema di programmazione è un problema riguardante il metodo che sto usando che inizio a pensare sia sbagliato di peso.

    Sto scrivendo alcuni metodi in c# che dovremo poi riciclare sulla tesi, uno di questi metodi che pensavo fosse banale invece mi sta dando problemi.
    Nel nostro mondo virtuale gli oggetti sono un insieme di celle quadrate composte da 4 segmenti, un edificio ad esempio di forma quadrata per banalizzare è quindi costituito da un'array multidimensionale di oggetti cella con tante righe quante colonne.

    Ora voglio implementare un metodo che consenta di ruotare tale edificio sul proprio baricentro di un certo numero di gradi per poter testare successivamente l'applicazione di varie forze fisiche, per attuare tale rotazione effettuo il calcolo del baricentro dell'edificio (che sono sicuro sia esatto) poi successivamente esprimo ogni segmento (che abbiamo definito come interpolazione di 2 punti estremi A e B) di cui è composta ogni singola cella in funzione delle coordinate del baricentro (cambio quindi sistema di riferimento), ad esempio facendo Xpunto-Xbaricentro=Xnuova.
    Fatto ciò applico una matrice di rototraslazione cosi costituita

    | cos(alpha) -sen(alpha) | | Xnuova | |Xrisultante |
    | sen(alpha) cos(alpha) | * | Ynuova | = | Yrisultate |

    (* prodotto tra matrici, alpha numero di gradi di cui voglio ruotare)

    al risultato poi risommo le coordinate del baricentro per ritornare in coordinate assolute e opero cosi per ogni coppia di punti A e B (quello sopra è il procedimento per un solo ipotetico punto A) ritraccio ogni segmento con le coordinate dei punti estremi aggiornate e dovrebbero essere ruotati del numero di gradi forniti rispetto al baricentro dell'edificio.

    Ora questo metodo funziona solo per alcuni valori tipo se inserisco 45° ruota l'edificio correttamente, per altri valori invece lo ruota sempre attorno al baricentro ma sembra "tirato" tutto da un'lato.

    Il problema è + che altro matematico, il codice dovrebbe essere giusto al 90% quindi probabilmente non tengo in considerazione qualcosa nel metodo che applico...qualcuno ne capisce qualcosa e può aiutarmi?
    io ho finito le idee
    Metti il codice qua.

  6. #6
    Petty Officer 1st Class
    Join Date
    Feb 2009
    Location
    bla
    Posts
    873

    Default

    Ho risolto lol...alla fine sono le cose + semplici e stupide......mi darei fuoco al pensiero del tempo che ci ho perso, c'era un punto che lavorava in radianti e non in gradi e sfasava tutto dove non era 0 ...sono un idiota

  7. #7
    Hador's Avatar
    Join Date
    Mar 2004
    Location
    Milano
    Posts
    31.321

    Default

    Quote Originally Posted by Shirogane View Post
    Ho risolto lol...alla fine sono le cose + semplici e stupide......mi darei fuoco al pensiero del tempo che ci ho perso, c'era un punto che lavorava in radianti e non in gradi e sfasava tutto dove non era 0 ...sono un idiota
    bhe ma i problemi sono sempre stupidi

    ah ma poi siamo in life? lol

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
[Output: 64.64 Kb. compressed to 55.22 Kb. by saving 9.42 Kb. (14.58%)]