Punto fisso matematico in c #?

Mi stavo chiedendo se qualcuno qui sa di buone risorse per la matematica in virgola fissa in c #? Ho visto cose come questa ( http://2ddev.72dpiarmy.com/viewtopic.php?id=156 ) e questo ( qual è il modo migliore per fare matematica in virgola fissa? ), E una serie di discussioni sul decimale è davvero un punto fisso o effettivamente mobile (aggiornamento: i responder hanno confermato che è decisamente mobile), ma non ho visto una libreria C # solida per cose come il calcolo del coseno e del seno.

Le mie esigenze sono semplici: ho bisogno degli operatori di base, oltre a coseno, seno, arctan2, PI … Penso che sia tutto qui. Forse sqrt. Sto programmando un gioco RTS 2D, che ho in gran parte funzionante, ma il movimento dell’unità quando si utilizza la matematica a virgola mobile (doppio) ha delle inesattezze molto piccole nel tempo (10-30 minuti) su più macchine, che portano a desyncs. Questo è attualmente solo tra un sistema operativo a 32 bit e un sistema operativo a 64 bit, tutte le macchine a 32 bit sembrano rimanere sincronizzate senza problemi, il che è ciò che mi fa pensare che si tratti di un problema in virgola mobile.

Ne ero consapevole come un ansible problema fin dall’inizio, e quindi ho limitato il più ansible il mio uso della matematica con posizione non intera il più ansible, ma per un movimento diagonale regolare a velocità diverse sto calcolando l’angolo tra i punti in radianti, quindi ottenere le componenti xey del movimento con sin e cos. Questo è il problema principale. Sto anche facendo alcuni calcoli per le intersezioni di segmenti di linea, intersezioni di cerchi lineari, intersezioni rect circle, ecc, che probabilmente hanno anche bisogno di spostarsi da virgola mobile a virgola fissa per evitare problemi di cross-machine.

Se c’è qualcosa di open source in Java o VB o in un altro linguaggio paragonabile, potrei probabilmente convertire il codice per i miei usi. La priorità principale per me è l’accuratezza, anche se mi piacerebbe perdere il più ansible la velocità rispetto alle prestazioni attuali. Questa cosa di matematica a punto fisso è molto nuova per me, e sono sorpreso da quante poche informazioni pratiche ci siano su google – la maggior parte delle cose sembra essere una teoria o un denso file di intestazione C ++.

Tutto ciò che potresti fare per indicarmi la giusta direzione è molto apprezzato; se riesco a farlo funzionare, ho intenzione di aprire le funzioni matematiche che ho messo insieme in modo che ci sia una risorsa per gli altri programmatori C #.

    AGGIORNAMENTO: Potrei sicuramente far funzionare una tabella di ricerca cosine / sinusoidale per i miei scopi, ma non penso che funzionerebbe per arctan2, dato che dovrei generare una tabella con circa 64.000 x64.000 voci (yikes). Se si conoscono spiegazioni programmatiche di metodi efficienti per calcolare cose come arctan2, sarebbe fantastico. Il mio background di matematica va bene, ma le formule avanzate e la notazione matematica tradizionale sono molto difficili da tradurre in codice.